15.6.1. gcc¶
15.6.1.1. 常规选项¶
-c
只执行预处理、编译、汇编,不执行链接过程-E
输出预处理文件-g
在可执行程序中包含标准调试信息-I <dir>
在头文件的搜索路径列表中添加dir目录-L <dir>
在库文件的搜索路径列表中添加dir目录-o <filename>
设置生成的文件名-Ox
设置优化的等级-s
去掉符号-S
输出汇编文件-v
打印出编译器内部编译各过程的命令行信息和编译器的版本
15.6.1.2. 安全相关选项¶
-fno-exceptions
不使用异常-fno-stack-protector
不开启canary栈溢出检测-z execstack
开启栈可执行关闭NX
15.6.1.3. 体系结构相关选项¶
-m32
生成32bit程序需要gcc-multilib (x86机器上编译不用加)-mcpu=type
针对不同的CPU使用相应的CPU指令,type可为i386/i486/pentium/i686等-mieee-fp
使用IEEE标准进行浮点数的比较-mno-ieee-fp
不使用IEEE标准进行浮点数的比较-mrtd
强行将函数参数个数固定的函数用ret NUM
返回,节省调用函数的一条指令-mshort
把int类型作为16位处理,相当于short int-msoft-float
输出包含浮点库调用的目标代码
15.6.1.4. 报警相关选项¶
-ansi
支持符合ANSI标准的C程序-pedantic
允许发出ANSI C标准所列的全部警告信息-pedantic-error
允许发出ANSI C标准所列的全部错误信息-w
关闭所有告警-Wall
允许发出Gcc提供的所有有用的报警信息-Werror
把所有的告警信息转化为错误信息,并在告警发生时终止编译过程