GCC常用参数解释
来源:互联网 发布:淘宝店铺买卖平台 编辑:程序博客网 时间:2024/06/03 17:34
gcc在命令行上经常使用的几个选项是:
-ansi 表示除了ANSI C标准之外其他特性都认为语法错。比如//单行注释。需要注意的是,这个选项只是严格执行大部分ansi标准。
-std= 后面可以跟c89 c99 gnu89等标准。表示编译器使用哪个标准进行编译。比如使用c89标准就用-std=c89,如果想一些gcc的扩展特性就用-std=gnu89。这个gnu89是默认值,也就是什么都不指定的时候就是用c89标准+gcc的扩展。-ansi就相当于-std=c89
-pedantic 严格执行ANSI C标准。一般与-ansi配合使用可以让源代码严格遵循ANSI C标准。可以打印出-Wall以外更多的告警信息。
-w 关闭所有告警提示
-Wall 虽然是-Wall但是不是打开所有告警提示而是大部分,但下面的-W开头的告警需要单独打开。
-W 对某些告警显示更详细的信息
-Wfloat-equal 浮点数直接使用==判断是否相等时告警
-Wtraditional 如果使用了原始C语言里有而C标准化后被废弃的特性就告警
-Wshadow 对shadow变量进行告警。比如:
有个全局变量nCount,这时你写的函数有个参数也叫nCount。编译器就会告警提示你,说局部参数nCount起作用而全局nCount不起作用。如果你用意不是如此就需要修改代码了。
-Werror 把所有的告警都转化为编译错误。只要有告警就停止编译。
-o file 确定输出文件为file。如果没有用-o选项,缺省的可执行文件的输出是a.out,目标文件和汇编文件的输出对source.suffix分别是source.o和source.s,预处理的C源程序的输出是标准输出stdout。
-Dmacro 或-Dmacro=defn 其作用类似于源程序里的#define。例如:% gcc -c -DHAVE_GDBM -DHELP_FILE=\"help\" cdict.c其中第一个- D选项定义宏HAVE_GDBM,在程序里可以用#ifdef去检查它是否被设置。第二个-D选项将宏HELP_FILE定义为字符串“help”(由于 反斜线的作用,引号实际上已成为该宏定义的一部分),这对于控制程序打开哪个文件是很有用的。
-Umacro 某些宏是被编译程序自动定义的。这些宏通常可以指定在其中进行编译的计算机系统类型的符号,用户可以在编译某程序时加上 -v选项以查看gcc缺省定义了哪些宏。如果用户想取消其中某个宏定义,用-Umacro选项,这相当于把#undef macro放在要编译的源文件的开头。
-Idir 将dir目录加到搜寻头文件的目录列表中去,并优先于在gcc缺省的搜索目录。在有多个-I选项的情况下,按命令行上-I选项的前后顺序搜索。dir可使用相对路径,如-I../inc等。
-O 对程序编译进行优化,编译程序试图减少被编译程序的长度和执行时间,但其编译速度比不做优化慢,而且要求较多的内存。
-O2 允许比-O更好的优化,编译速度较慢,但结果程序的执行速度较快。
-g 产生一张用于调试和排错的扩展符号表。-g选项使程序可以用GNU的调试程序GDB进行调试。优化和调试通常不兼容,同时使用-g和-O(-O2)选项经常会使程序产生奇怪的运行结果。所以不要同时使用-g和-O(-O2)选项。
-fpic或-fPIC 产生位置无关的目标代码,可用于构造共享函数库。
以 上是gcc的编译选项。gcc的命令行上还可以使用连接选项。事实上,gcc将所有不能识别的选项传递给连接程序ld。连接程序ld将几个目标文件和库程 序组合成一个可执行文件,它要解决对外部变量、外部过程、库程序等的引用。但我们永远不必要显式地调用ld。利用gcc命令去连接各个文件是很简单的,即 使在命令行里没有列出库程序,gcc也能保证某些库程序以正确的次序出现。
gcc的常用连接选项有下列几个:
-Ldir 将dir目录加到搜寻-l选项指定的函数库文件的目录列表中去,并优先于gcc缺省的搜索目录。在有多个-L选项的情况下,按命令行上-L选项的前后顺序搜索。dir可使用相对路径。如-L../lib等。
-lname 在连接时使用函数库libname.a,连接程序在-Ldir选项指定的目录下和/lib,/usr/lib目录下寻找该库文件。在没有使用-static选项时,如果发现共享函数库libname.so,则使用libname.so进行动态连接。
-static 禁止与共享函数库连接。
-shared 尽量与共享函数库连接
0 0
- GCC常用参数解释
- GCC常用参数解释
- GCC参数解释
- Gcc 参数解释
- gcc -rdynamic参数解释
- gcc -fpic 参数解释
- gcc 链接参数 解释
- gcc -rdynamic参数解释
- gcc -rdynamic参数解释
- GCC参数解释(整理)
- gcc常用参数详解
- gcc常用参数
- gcc常用参数
- [zz] GCC 常用参数
- gcc常用参数
- GCC 常用参数
- gcc g++ 常用参数
- gcc常用参数
- 文本挖掘—搜狗语料库数据预处理
- JS之预解析
- 【c语言】 编写递归函数,函数应该和下面的函数原型匹配:int hermite(int n,int x))
- Markdown使用参考手册
- 数据库原理--第五章作业(2013211534 刘凡)
- GCC常用参数解释
- 合并排序
- poj1016
- HDU ACM 4006 The kth great number 线段树?优先队列?
- i第一章,IOS应用与开发环境
- hadoop的HDFS和map-reduce
- code-smell-4-巨类
- Catch That Cow poj3278
- BZOJ 1007: [HNOI2008]水平可见直线 几何