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把所有的告警信息转化为错误信息,并在告警发生时终止编译过程