FreePascal中的编译器选项.docx
- 文档编号:26670695
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:13
- 大小:19.88KB
FreePascal中的编译器选项.docx
《FreePascal中的编译器选项.docx》由会员分享,可在线阅读,更多相关《FreePascal中的编译器选项.docx(13页珍藏版)》请在冰豆网上搜索。
FreePascal中的编译器选项
FreePascal中的编译器选项
FreePascal中的编译器选项
2010-10-0918:
32:
29|分类:
Win32Program
|举报
|字号订阅编译器选项:
普通选项:
-h该选项将把所有的命令行选项列出来,然后退出程序
-?
同-H一样的,在分屏显示
-i这个选项显示编译器版权信息,你能给一个选项,类似下面-ixxx
D返回编译器的日期
V返回编译器版本
SO返回编译器的系统版本
SP返回编译器所选的处理器
TO返回编译目标系统
TP返回编译后目标处理器
-l在标准出上显示FreePascal的LOGO,同时告诉你FreePascal的版本号
-n告诉编译器并不要读入默认的配置文件,你仍然可以通过@选项来使用配置文件编译器返回的信息:
-vxxxxxx可以是下面的:
e:
默认的选项,只显示错误
i:
只显示普通的信息
w:
显示警告
n:
显示注意
h:
显示提醒
l:
使用百分比显示错误行的位置
u:
显示加载的单元名称
t:
显示程序试图打开的文件
p:
显示过程和函数的名称
c:
告诉编译器警告你当它处理有条件时
m:
显示被定义的宏
d:
显示其它的调试信息
a:
显示所有的可能的信息
0:
不要任何信息.当你想不使用配置文件中的默认设置时有用
b:
显示所有所有声明的过程如果一个重载函数出现错误
x:
输出一些执行信息(只对Win32系统游)
r:
Rhide/GCC兼容模式:
将错误整理以便RHIDE能够使用
V:
创建一个包含有很多调试信息的fpcdebug.txt,主要是给编译器开发者的关于路径及文件的选项
-exxx
xxx指明可执行文件as(theassembler)和ld(thelinker)的路径.
-FaXYZ
在系统单元后但是在其他单元之前加载单元XYZ.XYZ是一个用逗号分隔的单元名称列表.只能用于程序,并且和把XYZ放在USES语句的一条效果一致.
-FcXXX
设置输入代码页toXXX.还在试验中.
-FD
和-e一样.
-Fexxx
将错误写入文件名为xxx的文件.
-FExxx
将单元和可执行文件输出到目录xxx,而不是当前目录.
-Fixxx
将xxx作为包含文件的搜索目录.
-Flxxx
将xxx作为library查找路径,被传给连接器.
-FLxxx
(LINUXonly)使用xxx作为动态链接库连接器,默认是/lib/ld-linux.so.2,or/Hlib/ld-linux.so.1,取决于谁先找到.
-Foxxx
添加xxx作为object文件查找路径.这个路径将在查找要连接的文件时有用.
-Frxxx
xxx制定包含调试代码信息的文件.默认是编译器内置的信息.如果指定就忽略默认的
-Fuxxx
把xxx添加到但愿搜索路径.单元将首先在当前路径下查找.如果没有发现将去单元路径查找.你必须提供系统单元路径.
-FUxxx
将编译好的单元放在xxx代替当前路径.将忽略-FE开关.
-Ixxx
将xxx放入包含的文件查找路径中.这个开关的作用和-Fi一样.
控制输出的选项
-a
告诉编译器不要删除产生的汇编代码文件.
-al
告诉编译器汇编文件中将源代码作为注释.
-an
将节点信息写入汇编文件(节点是编译器在中间的局部声明).最初是编译器为了调试代码而产生的.
-ap
usepipesinsteadofcreatingtemporaryassemblerfiles.ThismayspeedupthecompileronOS/2andLINUX.Onlywithassemblers(suchasGNUiftheinternalassemblerisused.
-ar
tellsthecompilertolistregisterallocationandreleaseinfointheassemblerfile.Thisisprimarilyintendedfordebuggingthecodegeneratedbythecompiler.
-at
在汇编文件中列出临时存储单元分配.
-Axxx
指明产生哪种汇编代码.xxx可以是下面的:
default
使用内置默认的.
as
使用GNUas汇编.
nasmcoff
coff(Go32v2)使用Nasm.
nasmelf
elf32(Linux)fileusingNasm.
nasmobj
objectfileusingNasm.
masm
objectfileusingMasm(Microsoft).
tasm
objectfileusingTasm(Borland).
elf
elf32(Linux)usinginternalwriter.
coff
coffobjectfile(Go32v2)usingtheinternalbinaryobjectwriter.
pecoff
pecoffobjectfile(Win32)usingtheinternalbinaryobjectwriter.
-B
告诉编译器重新编译所有的文件,尽管从上次编译后再没有更改过.
-b
告诉编译器产生浏览信息,这些信息能够提供给IDE单元内的classes,objects,procedures,typesandvariables.
-bl
和-b一样,但还产生局部变量,类型,过程的信息.
-Cc
设置为编译器默认的中断.
-CD
创建动态链接库,这个用来把单元转化为动态链接库,适用于LINUX.
-Ce
模仿浮点数协处理器
-CfXXX
设置使用浮点数处理器.
-Cg
允许产生PIC图像文件存储格式代码.
-Chxxx
保留xxx字节的堆.xxx在1024和67107840之间.
-Ci
检查输入输出检查.防止你程序输入输出代码返回错误的代码,程序将在退出时显示一个运行错误.这个错误是I/O引起的r.
-Cn
忽略连接阶段.
-Co
检查整数溢出.防止整形溢出,你的程序将产生一个运行错误.
-Cr
范围检查.防止你的程序运行时读数组越界,或者一个类型增大超过范围,将产生一个运行错误.
-CR
校检是不是正确调用对象内部的虚函数.
-Csxxx
设置栈的大小为xxx.
-Ct
检查栈溢出.在你的程序栈溢出时产生一个运行错误.
-CX
创建一种只有你的程序需要的代码才被连接,不需要的代码全部省去.这样就能产生更小的程序.
-dxxx
定义xxx符号.这样条件编译代码.
-D
产生一个DEF文件(模块定义文件,供生成动态链接库时使用)(forOS/2)
-Dd
设置可执行文件/动态链接库的描述信息(Windows)
-Dv
设置可执行文件/动态链接库的版本(Windows)
-E与-Cn一样的.
-g
为gdb产生调试信息
-gc
对指针类型(pointers)进行检查.这个必须和-gh一起使用.当这个开启时,将对访问堆的指针进行校检.
-gd
为dbx产生调试信息.
-gg
与-g相同.
-gh
使用heaptrc单元.(显示堆的使用情况,当程序推出后)
-gl
使用lineinfo单元.(显示文件的名称和行号当文件存在退出于一个错误时)
-gv
emitinfoforvalgrind.
-gw
使调试信息变小.
-kxxx
传递xxx给连接程序.
-Oxxx
编译器输出的代码最优化;xxx可以是下面的值:
g为代码长短而优化.
G为运行时间而优化(默认).
r使用寄存器变量(试验中,谨慎使用).
u不确定的优化
1一层优化(快速优化).
2二层优化(-O1加上一些更慢的优化).
3三层优化(-O2加上-Ou).
Pn(Intelonly)指定处理器:
n可以是:
1为386/486优化
2为Pentium/PentiumMMX?
优化
3为PentiumPro/PII/Cyrix6x86/K6?
优化
你能在Programmersguide中找到这些优化后精确的结果.
-oxxx
将xxx作为输出的可执行文件名.只适用于程序.
-pg
Generateprofilercodeforgprof.ThiswilldefinethesymbolFPC_PROFILE,whichcanbeusedinconditionaldefines.
-s
不使用汇编程序和连接程序.取而代之的,编译程序将生成一个脚本(ODS下的ppas.bat和LINUX下的ppas.sh),可以运行产生可执行文件.
这样能提高编译程序的速度,还有程序的调试信息输出速度.这个选项有几个扩展的参数,主要是为了交差编辑.能含有下面的一个值:
h产生的脚本在本机上连接运行.
t产生的脚本在目标平台上编译.也就是编译后的可执行文件能在目标系统中运行
r跳过注册分配阶段,不能进行最优化//Skipregisterallocationphase.
-Txxx
指明目标操作系统.xxx可以是下面中的一个:
emx:
OS/2viaEMX(andDOSviaEMXextender)
freebsd:
FreeBSD.
go32v2:
DOSandversion2oftheDJDELORIEextender.
linux:
LINUX.
netbsd:
NetBSD.
netware:
NovellNetwareModule(clib)
netwlibc:
NovellNetwareModule(libc)
os2:
OS/2(2.x)usingtheEMXextender.
sunos:
SunOS/Solaris.
watcom:
watcomcompatibleDOSextender
wdosx:
WDOSXextender.
win32:
WINDOWS32bit.
-uxxx
取消xxx的定义.与-d选项相反.
-Ur
产生一个永久单元.这个文件将不会再被编译,即使当源程序更改了.当发行一个版本时有用.对于发行的单元将忽略-B选项.
-W
设置产生的可行文件一些WINDOWS或OS/2的文件属性.可以是像下面的一项或是多项
Bhhh
setpreferredbaseaddresstohhh(一个十六进制数地址)
C
产生一个控制台应用程序(+)或者可视界面程序(-)//aconsoleapplication(+)oraguiapplication(-).
D
强制使用Def文件用以输出.
F
GenerateaFSapplication(+)或控制台应用程序(-).
G
生成可视化界面的程序(+)或控制台应用程序(-).
N
Donotgeneraterelocationsection.
R
Generatearelocationsection.
T
GenerateaTOOLapplication(+)或控制台应用程序(-).
-Xx
可执行文件选项,告诉编译器编译成什么样的程序.参数x可以是下面中的一个:
c:
(LINUXonly)LinkwiththeClibrary.YoushouldonlyusethiswhenyoustarttoportFreePascaltoanotheroperatingsystem.
d:
don’tusethestandardlibrarypath.Thisisneededforcross-compilation,toavoidlinkingwiththehostplatform’slibraries.
D:
Linkwithdynamiclibraries(definestheFPC_LINK_DYNAMICsymbol)
pXXX:
PrependbinutilsnameswithXXXforcross-compiling.
rXXX:
setlibrarypathtoXXX.
s:
Stripthesymbolsfromtheexecutable.
S:
Linkwithstaticunits(definestheFPC_LINK_STATICsymbol)
t:
linkstatic.Itpassesthe-staticoptiontothelinker.
X:
Linkwithsmartlinkedunits(definestheFPC_LINK_SMARTsymbol)关于源程序的选项(语言选项)
-Mmode
设置语言类型,可以是下面的一种:
delphi
Delphi兼容模式.这个比objfpc模式更加严谨,因为关闭了一些FreePascal扩展的功能.
fpc
freePascal模式,默认的
gpc
与GPC兼容
macpas
与MAC上的Pascal兼容.
objfpc
一些Delphi2地扩展功能将打开.但是与Delph模式不同.因为FreePascal特性仍然可以使用.
tp
与TP/BP7.0兼容.这就意味着不能使用函数重载等功能.
-Rxxx
指明你使用的汇编代码类型.xxx是下面中的一个:
att
AT&T格式的汇编代码.默认的格式.
intel
Intel格式的汇编代码.
direct
asmblocksshouldbecopiedas-isintheassembler,onlyreplacingcertainvariables.file.
-S2
打开Delphi2扩展(objfpcmode).建议使用-Mobjfpc代替.
-Sa
Includeassertstatementsincompiledcode.Omittingthisoptionwillcauseassertstatementstobeignored.
-Sc
提供C风格的操作符,也就是*=,+=,/=and-=.
-Sd
与Delphi兼容.推荐使用-Mdelphi代替.
-SeN
编译器将在第N个错误后停止.如果N没有,那么默认N为1.通常编译器将在一个错误后试图继续编译,直到有50个错误或者发现了致命的错误才停止.
-Sg
提供使用label和goto命令.默认是不支持的.你也要使用这个选项如果你在汇编语句中使用了Label.(如果你使用AT&T格式地的代码)
-Sh
使用ansistrings代替默认的strings.如果指明,那么编译器将把string认为是ansistring.否则只提供短字符串(TP类型).
-Si
提供C++风格的INLINE//SupportC++styleINLINE.
-SIXXX
setinterfacesstyletoXXX.
-Sm
提供C风格的宏.
-So
与BorlandTP7.0兼容.建议使用-Mtp代替.
-Sp
与gpc(GNUpascalcompiler)兼容.建议使用-Mgpc代替.
-Ss
构造函数必须初始化,析构函数必须完成.//我也不太清楚,大概是二者都要有吧.
-St
在对象(Objects)中允许使用static关键字.
-Un
不检查单元名称.通常单元名好文件名要求是一样的.这个选项允许二者不同.
-Us
如果便一个系统单元,这个选项将让编译器只使用几种基本数据类型.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FreePascal 中的 编译器 选项
![提示](https://static.bdocx.com/images/bang_tan.gif)