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版本
总体选项
-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版本
相关文章推荐
- 什么是MVC?(转)
- 人生和工作
- Microsoft Internet Explorer FTP含命令注入漏洞
- CLR via C# 读书笔记(七)线程同步的几种解决办法
- bash流程操作语法
- Microsoft IE 7 setRequestHeader()函数多个请求拆分/渗透漏洞
- 使用IRP进行文件操作
- java连接各种数据库方式
- jdom.dir 找不到
- ASP.NET状态管理之二:Session
- 该读的书
- window下如何配置sybase使用最大内存
- mysql学习总结
- 关于NASM的学习
- BatchUpdata 学习记录
- 谈谈C#中的三个关键词new , virtual , override
- DIV+CSS学习--关于ID和CLASS
- 小说要求
- CSS:HTML结构化
- webservice 基于对象的传输