fbc command-line
 
使用FBCen命令行。

FreeBASIC的官方版本随附FreeBASIC旗舰版的FBCen.FBCen是一个命令行编译器,可以从控制台启动 - 从DOS,Windows命令提示符或Linux shell。在没有任何参数的情况下运行FBCen显示可用选项或命令行开关的列表,可用于调整编译器的行为。

最简单的,FBCen将源文件作为命令行参数,并生成一个可执行文件。它通过将源文件(.bas)编译成汇编(.asm)文件,然后使用GAS将其编译为目标文件(.o),最后使用LD将此目标文件链接到其所需的其他对象文件和库运行,生成最终的可执行文件。默认情况下,此处将删除汇编和编译的对象文件。例如,以下命令,

fbc foo.bas

在DOS和Windows中生成可执行文件foo.exe,在Linux中生成./foo.FBCen可以一次接受多个源文件,将它们全部编译成一个可执行文件。例如,以下命令,

fbc foo.bas bar.bas baz.bas

在DOS和Windows中生成可执行文件foo.exe,在Linux中生成./foo.由于foo.bas首先列出,它将成为可执行文件的主要入口点,并提供其名称。要指定不同的入口点或可执行文件名称,请分别使用“-m”和“-x”开关。例如,为了让baz.bas将主入口点提供到一个名为foobar.exe的可执行文件中,你可以使用

fbc -x foobar.exe -m baz foo.bas bar.bas baz.bas

“-x”开关会逐字地命名可执行文件,因此在Linux中,从上述命令生成的可执行文件将被称为./foobar.exe.

语法

fbc [ options ] [ input_list ]

其中input_list 是文件名列表。接受的文件是:

文件扩展名描述
.BASFreeBASIC源文件
.a图书馆
.o对象文件
.rc资源脚本(仅限Windows)
.RES编译资源(仅限Windows)
.xpmX图标pixmap(仅限Linux)


源代码
-b <名称>
添加源文件进行编译
-i <名称>
添加搜索包含文件的路径
- 包含<名称>
在每个源文件中加入一个头文件
-d <name = val >
添加预处理器的定义
-lang <名称>
选择语言模式:fbfbliteqbdeprecated
-forcelang <名称>
选择语言模式:fbfbliteqbdeprecated(覆盖代码中的语句)

代码生成
-target <平台>
设置交叉编译的目标平台
-gen <后端>
设置编译器后端(默认为'gas')。
-asm <格式>
设置Asm块的汇编器格式。
-arch <类型>
设置目标体系结构(默认值:486
-O <等级>
设置优化级别(-gen gcc)。
-vec < level >
设置编译器启用的向量优化级别(默认值:0
-fpu <输入>
设置浮点算术单位(默认值:FPU
-fpmode <类型>
在快速准确的浮点运算之间进行选择(默认值:PRECISE
-z <value >
设置杂项或实验选项。

编译
-m <name >
主文件没有扩展名,入口点(默认是第一个.bas文件在命令行上)
-g
添加调试信息
-profile
启用功能分析
-e
添加错误检查
-ex
使用RESUME支持添加错误检查
-exx
-ex加上数组边界和空指针检查相同
-Wa <opt >
将选项传递给GAS(用逗号分隔)
-Wc <opt >
将选项传递给GCC(用逗号分隔)
-o <name >
设置对象文件路径/名称(必须在.bas文件后面传递)

链接
-a <name >
将对象文件添加到链接器的列表
-l <name >
将库文件添加到链接器列表
-p <name >
添加一个路径来搜索库
-mt
与线程安全运行库链接
-nodeflibs
不包括默认库
-静态的
链接时,优先于静态库
-map <name >
将链接图保存到文件名
-Wl <opt >
将选项传递给LD(用逗号分隔)
-出口
导出动态链接符号
-lib
创建静态库
-dylib
创建一个DLL,包括导入库
-dllen
创建一个DLL,包括导入库。(与-dylib相同)
-x {98??9796003}name >
设置可执行文件/库路径/名称

{999796001}Behaviour{999796002}
-prefix {98??9796003}路径>
设置编译器前缀路径
-版
在命令行上显示编译器版本,不要编译或链接。
-v
详细
-print <选项>
显示某些信息(hosttarget等)
-pp
仅发出预处理的输入文件,不编译
-r
仅编译成中间文件,不要组装或链接
-rr
只能编译成asm文件,不要汇编或链接
-c
仅编译和汇编源文件,不要链接
-R
不要删除中间文件
-RR
不要删除asm文件
-C
不要删除目标文件
-w <value >en
设置最小警告级别:allpedanticnext或值
-maxerr <val >
只有<val >错误发生时才停止解析
-noerrline
不显示发生错误的源代码行

具体目标
-s <name >
设置子系统(guiconsole
-t <value >
将堆栈大小设置为kbytes(默认值:1M)


@ <档案>
从文件读取(附加)命令行选项


 

例子

fbc myfile.bas
(With DOS version of FBC, compile and link a DOS executable MYFILE.EXE.)

fbc -s gui myfile.bas
(With Windows version of FBC, compile and link a Windows executable myfile.exe. Running the program will not show the console window ("MS-DOS Prompt"))

fbc -lib module1.bas module2.bas module3.bas -x libmylib.a
(Compile and link a static library libmylib.a from the three source files)

fbc -m main_module -c main_module.bas
(Compile an object file main_module.o and mark it as an entry point)
fbc -c sub_module.bas
(Compile an object file sub_module.o)
fbc -x application.exe main_module.o sub_module.o
(Link an executable application.exe)

参考