脚本宝典收集整理的这篇文章主要介绍了【相关整理】gcc常见参数整理,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
周生政
make约定俗成的规范:
- 1,首先从源代码生成目标文件(预处理,编译,汇编),"-c"选项表示不执行链接步骤。
$(CC) $(CPPFLAGS) $(CFLAGS) example.c -c -o example.o
- 2,然后将目标文件连接为最终的结果(连接),"-o"选项用于指定输出文件的名字。
$(CC) $(LDFLAGS) example.o -o example
- 有一些软件包一次完成四个步骤:
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) example.c -o example
CFLAGS 与 CXXFLAGS
CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。大多数程序和库在编译时默认的优化级别是”2″(使用”-O2″选项)并且带有调试符号来编 译,也就是 CFLAGS=”-O2 -g”, CXXFLAGS=$CFLAGS 。事实上,”-O2″已经启用绝大多数安全的优化选项了。另一方面,由于大部分选项可以同时用于这两个变量,所以仅在最后讲述只能用于其中一个变量的选 项。[提醒]下面所列选项皆为非默认选项,你只要按需添加即可。
LDFLAGS
ld用于指定链接时参数
gcc参数解释
编译
- c 编译
- Wall 最常用到的编译警告, 推荐总是使用该选项
- o 小写字母o指定结果文件名称
- l 链接库。编译器选项“-lNAME”试图链接标准库目录下的文件名为“libNAME.a”。lm => libm.a;
- I 指定头文件搜索路径
- L 库搜索路径
- static 使用静态库
- ansi禁止那些与 ANSI/ISO 标准冲突的 GNU 扩展特性。在使用 GNU C 库(glibc) 的系统上,该选项也禁止了对 C 标准库的扩展。
- std 指定标准, c89,c99,gnu99,gnu89
- W常见潜在编程错误,建议开发时使用
预处理
- D -DNAME选项在命令行上定义预处理宏 NAME
- E 预处理源文件
调试
- g 存储额外的调试信息
优化
- O0 或者无-O选项: 无优化
- O1或者O: 不需要任何速度-空间折衷的最常见形式的优化
- O2、03:更近异步优化
平台相关
动态链接
一个与共享库链接的可执行文件仅仅包含它用到的函数相关的一个表格,而不是外部函数所在的 对象文件的整个机器码。在可执行文件开始运行以前,外部函数的机器码由操作系统从磁盘上的 该共享库中复制到内存中----这个过程被称作动态链接
变量
以上是脚本宝典为你收集整理的【相关整理】gcc常见参数整理全部内容,希望文章能够帮你解决【相关整理】gcc常见参数整理所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。