FreePascal中的编译器选项_第1页
FreePascal中的编译器选项_第2页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FreePascal 中的编译器选项FreePascal 中的编译器选项2010-10-09 18:32:29| 分类:Win32Program|举报I 字号订阅编译器选项:普通选项:-h 该选项将把所有的命令行选项列出来,然后退出程序-?同-H 样的,在分屏显示-i 这个选项显示编译器版权信息,你能给一个选项,类似下面-ixxxD返回编译器的日期V返回编译器版本SO 返回编译器的系统版本SP 返回编译器所选的处理器TO 返回编译目标系统TP 返回编译后目标处理器-I 在标准出上显示 Free Pascal 的 LOGO,同时告 诉你Free Pascal 的版本号然可以通过选项来使用配置文件

2、 编译器返回的信息-VXXX XXX可以是下面的:W:显7K警e:默认的选项,只显示错误 i:只显示普通的信息n:亠显示注 意h:显示提醒I:使用百分比显示错误行的位置u:显示加载的单元名称t:显示程序试图打开的文件P:显示过程和函数的名称c:告诉编译器警告你当它处理有条件时m:显示被定义的宏 d:显示其它的调试信息 a:显示所有的可能的信息-n告诉编译器并不要读入默认的配置文件,你仍0:不要任何信息当你想不使用配置文件中的默认设 置时有用b:显示所有所有声明的过程如果一个重载函数出现错误x:输出一些执行信息(只对 Win32 系统游)r: Rhide/GCC 兼容模式:将错误整理以便 RHI

3、DE 能 够使用V:创建一个包含有很多调试信息的 fpcdebug.txt,主要是给编译器开发者的关于路径及文件的选项-exxxxxx 指明可执行文件 as (the assembler)和 Id (the linker) 的路径.-FaXYZ在系统单元后但是在其他单元之前加载单元 XYZ .XYZ 是一个用逗号分隔的单元名称列表只能用于程序,并 且和把XYZ 放在 USES 语句的一条效果一致.-FcXXX设置输入代码页 to XXX.还在试验中.-FD-Fexxx 将错误写入文件名为 xxx 的文件.-FExxx将单元和可执行文件输出到目录XXX,而不是当前目录-Fixxx将XXX作为包含

4、文件的搜索目录-Fixxx将XXX作为library查找路径,被传给连接器-FLxxx(LINUX only)使用 xxx 作为动态链接库连接器,默认是/lib/ld-linux.so.2, or /Hlib/ld-linux.so.1,取决于谁先找到-Foxxx添加 xxx 作为 object 文件查找路径.这个路径将在查 找要连接的文件时有用-FrxxxXXX制定包含调试代码信息的文件默认是编译器内置 的信息.如果指定就忽略默认的-Fuxxx把XXX添加到但愿搜索路径单元将首先在当前路径下 查找如果没有发现将去单元路径查找你必须提供系统单 元路径-FUxxx将编译好的单元放在 xxx 代替

5、当前路径将忽略-FE 开关.-Ixxx将XXX放入包含的文件查找路径中这个开关的作用和-Fi 样.控制输出的选项-a告诉编译器不要删除产生的汇编代码文件-al告诉编译器汇编文件中将源代码作为注释-an将节点信息写入汇编文件(节点是编译器在中间的局部 声明)最初是编译器为了调试代码而产生的-apuse pipes instead of creating temporary assembler files. Thismay speed up the compiler on OS/2 and LINUXOnly withassemblers (such as GNU if the internal

6、assembier is used.tells the compiler to list register allocation and release info in theassembler file. This is primarily intended for debugging the codegenerated by the compiler, -at在汇编文件中列出临时存储单元分配-Axxx指明产生哪种汇编代码 XXX 可以是下面的:default使用内置默认的as使用 GNU as )1 匚编.nasmcoffcoff (Go32v2)使用 Nasm. nasmelfelf32

7、 (Linux) file using Nasm. nasmobjobject file using Nasmmasmobject file using Masm (Microsoft).tasmobject file using Tasm (Borland).elfelf32 (Linux) using internal writer.coffcoff object file (Go32v2) using the internal binary objectwriterpecoffpecoff object file (Win32) using the internal binaryobje

8、ct writer.-B 告诉编译器重新编译所有的文件,尽管从上次编译后再没 有更改过七告诉编译器产生浏览信息,这些信息能够提供给 IDE 单 元内的classes, objects, procedures, types and variables . 七 I和七一样,但还产生局部变量,类型,过程的信息.-Cc 设置为编译器默认的中断-CD创建动态链接库,这个用来把单元转化为动态链接库,适用于 LINUX.-Ce 模仿浮点数协处理器-CfXXX 设置使用浮点数处理器-Cg 允许产生 PIC 图像文件存储格式代码-Chxxx保留 xxx 字节的堆 xxx 在 1024 和 67107840 之间

9、-Ci 检查输入输出检查防止你程序输入输出代码返回错误的代码,程序将在退出时显示一个运行错误这个错误是 I/O 引起的 r.Cn忽略连接阶段Co检查整数溢出防止整形溢出,你的程序将产生一个运行错误.-Cr范围检查防止你的程序运行时读数组越界,或者一个类型增大超过范围,将产生一个运行错误-CR 校检是不是正确调用对象内部的虚函数-CSXXX设置栈的大小为XXX.Ct 检查栈溢出在你的程序栈溢出时产生一个运行错误 CX 创建一种只有你的程序需要的代码才被连接,不需要的代 码全部省去这样就能产生更小的程序-dxxx 定义 xxx 符号这样条件编译代码 -D产生一个 DEF 文件(模块定义文件,供生成

10、动态链接库时使用)(for OS/2)-Dd设置可执行文件/动态链接库的描述信息(Windows)-Dv设置可执行文件/动态链接库的版本(Windows) -E 与-Cn一样的g为 gdb 产生调试信息-gc对指针类型(pointers)进行检查.这个必须和-gh 起 使用当这个开启时,将对访问堆的指针进行校检 -gd为 dbx 产生调试信息.-gg与-g 相同.-gh使用 heaptrc 单元.(显示堆的使用情况,当程序推出后)-gi使用 lineinfo 单元.(显示文件的名称和行号当文件存 在 退出于一个错误时)-gvemit info for valgrind.-gw使调试信息变小-k

11、xxx传递 xxx 给连接程序.-Oxxx编译器输出的代码最优化;XXX可以是下面的值:g为代码长短而优化G 为运行时间而优化(默认).使用寄存器变量(试验中,谨慎使用).U 不确定的优化1 一层优化(快速优化)2 二层优化(-O1 加上一些更慢的优化).3 三层优化(-02 加上-Ou).Pn (Intel only)指定处理器:n 可以是:1 为 386/486 优化2 为 Pentium/PentiumMMX ?优化3 为 PentiumPro/PII/Cyrix 6x86/K6 ? 优化你能在 Programmers guide 中找到这些优化后精确的结果-OXXX将XXX作为输出的可

12、执行文件名只适用于程序-pgGenerate profiler code for gprof. This will define the symbolFPC_PROFILE, which can be used in conditional defines.不使用汇编程序和连接程序取而代之的,编译程序将 生成脚本(ODS下的ppas.bat和LINUX下的ppas.sh), 可以运行产生可执行文件这样能提高编译程序的速度,还有程序的调试信息输出 速度这个选项有几个扩展的参数,主要是为了交差编辑 能含有下面的一个值:h 产生的脚本在本机上连接运行.t 产生的脚本在目标平台上编译也就是编译后的可执

13、 行文件能在目标系统中运行跳过注册分配阶段,不能进行最优化/Skip register allocationphase .-Txxx指明目标操作系统.xxx 可以是下面中的一个:emx :OS/2 via EMX (and DOS via EMX extender) freebsd : FreeBSD.go32v2 : DOS and version 2 of the DJ DELORIE extender, linux :LINUX.netbsd : NetBSD.netware : Novell Netware Module (clib) netwlibc : Novell Netware

14、Module (libc) os2 : OS/2 (2.x) using the EMX extender. sunos :SunOS/Solaris.watcom : watcom compatible DOS extender wdosx :WDOSX extender.Win32 : WINDOWS 32 bit.-uxxx取消 xxx 的定义.与-d 选项相反.-Ur产生一个永久单元.这个文件将不会再被编译,即使当 源程序更改了 当发行一个版本时有用对于发行的单元将 忽略-B 选项.-W设置产生的可行文件一些 WINDOWS或 OS/2的文件属 性可以是像下面的一项或是多项Bhhhse

15、t preferred base address to hhh ( 十六进制数 地 址)C产生一个控制台应用程序(+) 或者可视界面程序(-) /a consoleapplication (+) or a gui application (-).强制使用 Def 文件用以输出Generate a FS application (+)或控制台应用程序(-).生成可视化界面的程序(+)或控制台应用程序(-).NDo not gen erate relocation sectio n.RGenerate a relocation section.TGenerate a TOOL applicatio

16、n (+)或控制台应用程 序(-)-Xx可执行文件选项,告诉编译器编译成什么样的程序参数X可以是下面中的一个:c : (LINUX only) Link with the C library. You should only use thiswhen you start to port Free Pascal to another operating systemd :don t use the standard library path. This is needed forcross-compilation, to avoid linking with the host platform

17、s libraries.D : Link with dynamic libraries (defines theFPC_LINK_DYNAMIC symbol)pXXX : Prepend binutils names with XXX for crosscompilingrXXX : set library path to XXX.s : Strip the symbols from the executableS : Link with static units (defines the FPC_LINK_STATIC symbol)t: link static .It passes th

18、e -static option to the linker.X : Link with smartlinked units (defines the FPC_LINK_SMARTsymbol)关于源程序的选项(语言选项)- Mmode设置语言类型,可以是下面的一种:delphiDelphi 兼容模式.这个比 objfpc 模式更加严 谨,因为关闭了一些 FreePascal 扩展的功能fpcfree Pascal 模式,默认的 gpc与 GPC 兼容 macpas与 MAC 上的 Pascal 兼容.objfpc一些 Delphi 2 地扩展功能将打开但是与Delph 模式不同.因为 Fre

19、e Pascal 特性仍然可以使用.重载等功能-Rxxx指明你使用的汇编代码类型.XXX 是下面中的一个:attAT&T 格式的汇编代码.默认的格式intelIntel 格式的汇编代码directasm blocks should be copied as-is in the assembler,only replacing certai n variables .file.-S2打开 Delphi 2 扩展(objfpc mode).建议使用-Mobjfpc 代替.-SaIn elude assert statements in compiled code. Omitting this optionwill cause assert statements to be ignored.tp与 T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论