gcc编译器
2013-09-28 20:29
267 查看
gcc/g++在执行编译的时候,只要分四个阶段 :
1、预处理阶段,完成宏定义和include文件展开等工作; [预处理器cpp]
2、根据编译参数进行不同程度的优化,编译成汇编代码,生成.s的文件 ; [编译器egcs]
3、用汇编器把汇编代码进一步生成目标代码,生成.o的文件; [汇编器as]
4、用连接器把生成的目标代码和系统或用户提供的库连接起来,生成可执行文件; [链接器ld]
gcc常用编译选项:
-E 只运行C预编译器cpp,不生成文件
-S 只把文件编译成为汇编代码
-c 只生成object文件,不链接
-o 生成指定的输出文件
-g 生成可被gdb使用的标准调试信息
-IDIR 指定额外的头文件搜索路径DIR
-LDIR 指定额外的库函数搜索路径DIR
-lLIBRARY 指定链接时需要的其它函数库“ LIBRARY”
-w 不生成任何警告信息
-Wall 生成所有级别的警告信息
-shared 生成支持动态共享库的执行文件
-static 不支持动态共享库,把函数库内容静态链接到可执行程序中
-O0 不进行代码优化处理
-O,O1 进行一般优化,减少大小和时间
-O2 进一步优化,一般在内核编译时使用
-O3 较-O2进一步优化
1、预处理阶段,完成宏定义和include文件展开等工作; [预处理器cpp]
2、根据编译参数进行不同程度的优化,编译成汇编代码,生成.s的文件 ; [编译器egcs]
3、用汇编器把汇编代码进一步生成目标代码,生成.o的文件; [汇编器as]
4、用连接器把生成的目标代码和系统或用户提供的库连接起来,生成可执行文件; [链接器ld]
gcc常用编译选项:
-E 只运行C预编译器cpp,不生成文件
-S 只把文件编译成为汇编代码
-c 只生成object文件,不链接
-o 生成指定的输出文件
-g 生成可被gdb使用的标准调试信息
-IDIR 指定额外的头文件搜索路径DIR
-LDIR 指定额外的库函数搜索路径DIR
-lLIBRARY 指定链接时需要的其它函数库“ LIBRARY”
-w 不生成任何警告信息
-Wall 生成所有级别的警告信息
-shared 生成支持动态共享库的执行文件
-static 不支持动态共享库,把函数库内容静态链接到可执行程序中
-O0 不进行代码优化处理
-O,O1 进行一般优化,减少大小和时间
-O2 进一步优化,一般在内核编译时使用
-O3 较-O2进一步优化
相关文章推荐
- 哈夫曼编码(备忘)
- TCP窗口知识汇总
- 编译程序与操作系统的关系
- dojo第一天
- Markdown 语法说明
- 贝叶斯及其部分应用
- 图解SQL视频
- Linux Performance Analysis and Tools(Linux性能分析和工具)
- 后缀数组的实现和字符串匹配
- AES相关资料
- Linux 设备文件与udev
- Extjs NumberField 开始值 不能大于 结束值
- ubuntu apache不显示出错信息解决办法
- java笔试题---override与overload的区别
- x264 编译
- Java运算符与java语句
- dll编写教程
- Mvc示例代码调试之二——调试示例讲解
- Django-1.5.4 安装和入门
- hdu4767_Bell_矩阵快速幂+中国剩余定理