◆◆请问各位大哥,你们是怎样设置编译、链接选项的?才使程序得到最优化◆◆(30分)

  • 主题发起人 主题发起人 小笨苯
  • 开始时间 开始时间

小笨苯

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大哥,过年好!
请问:你们在将工程编译成最终的发行版本时,是怎样设置编译、链接选项的?就是怎样设置在
Project|Options...中的“Compiler”和“Linker”两个选项页上的各个选项?
 
咦???这个问题不是很难吧?!怎么没人回答呀?那你们平时都是怎样设置的呢?
 
Compiler (编译选项):
1.代码产生 (Code generation)
Optimization ( 优化 )
这个选项一旦使能,编译器将不根据代码的写作顺序,而根据最好的执行效率进行代码
优化,本选项优化的项目很多,Delphi 将最大程度地使代码最小、执行最快。编译指令是 {$O+} 或 {$O-}
Aligned recoed fields ( 记录域对齐 )
将记录结构中的每个成员,都按 32 位大小对齐,以便快速存取,减少字不对齐时的字长预测,
这个选项应该不影响被明确标注为 packed 的记录结构。编译指令是 {$A+} or {$A-}
Stack frames ( 堆帧 )
强制每个过程或函数生成堆帧,查找错误时,编译器需要堆帧帮忙。关闭这个选项,Delphi 会只在需要时
才产生堆帧。编译指令是 {$W+} or {$W-}
Pentium-safe FDIV ( 产生对 Pentium 芯片的特殊检查代码 )
这个已经不再需要了。它自动产生对 Pentium 芯片的 bug 检查代码,但这批有 bug 的芯片,intel 公司
已经回收掉了。编译指令是 {$U+} or {$U-}
...........
 
2.运行时错误检查 (Runtime errors)
Range checking (范围检查)
在运行时,对数组的子界范围有没有超出界限进行检查。编译指令是 {$R+} or {$R-}
I/O checking (I/O 检查)
在运行时,对 I/O 调用(如文件读写)进行 I/O 设备错误检查。编译指令是 {$I+} or {$I-}
Overflow checking (溢出检查)
在运行时,对变量的取值范围进行保护性检查(如 Byte 的范围应该是 0-255)。编译指令是 {$Q+} or {$Q-}

以上都是不需要的,但建议保留 I/O 错误检查选项。Delphi 会自动附加一些代码,以保
护运行的程序发生以上错误时,不至于使系统崩溃。
.........
 
小雨哥:
真是很感谢你啊!
昨天朋友聚会,出去喝酒啦,没来,今天才清醒了一点,呵呵。
能否将“Compiler”和“Linker”两个选项页上的其他一些选项说一下?
再有,就是“Compiler”页上的Debugging和Messages,是不是在正式编译程序时,都可以
不选中呢?
 
我上面的就是翻译自 Delphi 的帮助里的内容。觉着自己 E 文也很差,译着译着就觉得没
啥意思了,你可以看帮助里的原文。至于 Messages 标签的选项,它不会进入最终的 EXE
文件,还是选中的比较好,可以方便知道错误和警告提示,Debug 选项在最终成为 EXE 文
件时可以全部去掉,但如果编的是控件包,建议保留调试信息(Debug infomation)。
 
谢谢啦!给分啦!
以后,还要多多向你请教啊![:D][:D]
 
后退
顶部