您的位置:首页 > 其它

GCC读书笔记

2008-03-26 15:47 369 查看
本文档摘自《GCC中文手册》,对其中重要内容进行了记录,忽略了一些我认为不是非常重要的地方。gcc编译C,g++编译C++。
总体选项
-x 通常来说,编译器使用编译的方式是根据文件的后缀名来判断,如果不想使用默认后缀名识别的方式,可以使用这个参数制定文档命名的方式。如果想取消,则使用-x none.
-c 编译,编译完文件为.o。
-S 编译,不进行汇编
-E 预处理,结果送到标准输出。
-v 版本

语言选项
-ansi 支持ansi C
-fno-asm 不把inline、typeof、asm当成关键字
-fenum-int-equiv 允许int类型到枚举类型的隐式转换。正常情况下,GNU C++允许从enum到int的转换,反之不行。
-fexternal-templates 为模板声明产生较小的代码
-fall-virtual 所有可能的成员默认为虚函数。
-fcond-mismatch 允许条件表达式的第二和第三个参数类型的不匹配。
-fthis-is variable 允许对this赋值。好恐怖。
-funsigned-char 把char定义成unsigned char。
-fsigned-char把char定义成signed char。
-fsigned-bitfields
-funsigned-bitfields
-fno-signed-bitfields
-fno-unsigned-bitfields 明确位域是否是有符号的。

预处理器选项
-include file 包含文件
-imacro file 使用包含文件的宏生效。
-idirafter dir 第二包含路径
-iprefix prefix前缀
-iwithprefix dir 包含prefix加上dir。
-nostdinc 不包含标准目录的内容
-nostdinc++ 不包含标准C++目录内容
-undef 不预定义任何非标准宏。
-E 仅预处理
-C 不要丢弃注释
-P 不要产生inline
-M 输出目标的依赖。
-MM 输出目标的依赖。不包含对系统头文件的依赖。
-MD 产生.d文件保存依赖,规则等同-M。
-MMD产生.d文件保存依赖,规则等同-MM。
-H 显示应用过的.H文件。
-D macro 定义宏。
-D macro==defn 定义宏等于defn。
-U macro 取消宏。
-dM 输出有效的宏。需要结合-E。
-dD 输出所有的宏。需要结合-E。
-dN 输出所有的宏,忽略参量,需要结合-E。

汇编器选项:
-Wa,option 把选项option传递给编译器。

连接器选项
Object-file-name 目标文件
-l library连接的库名。
-nostartfiles 不连接系统标准启动文件,而标准库文件仍然正常使用。
-nostdlib 不连接标准启动文件和标准库文件
-Xlinker option 将option传给连接器
-Wl,option,将option传给连接器
-u symbol 使连接器认为取消了symbol的符号定义

目标选项
-I dir 增加头文件搜索路径
-L dir 增加lib搜索路径
-B prefix 搜索路径的前缀

警告选项
-fsyntax-only 检查程序中的语法错误,但不产生输出信息。
-w 禁止所有警告信息。
-Wno-import 禁止所有关于#import的警告信息。
-Wall 使用编译器建议的告警。

调试选项
-g 以操作系统格式输出调试信息
-ggdb 以本地格式输出调试信息,尽可能包含GDB扩展。
-glevel -ggdblevel -gstabslevel -gcofflevel -gxcofflevel -gdwarflevel 告警信息等级,默认2

优化选项
-O –O1 优化.
-O2 更深入优化.
-O3 最高级优化。
-O0 不优化。

目标机选项
-b machine 指定目标机种类
-V版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: