gcc编译器不得不知的一些事情(二)

gcc编译过程中常用的参数解析

gcc/g++指令选项功 能
-E(大写)预处理指定的源文件,不进行编译。
-S(大写)编译指定的源文件,但是不进行汇编。
-c编译、汇编指定的源文件,但是不进行链接。
-o指定生成文件的文件名。
-llibrary(-I library)其中 library 表示要搜索的库文件的名称。该选项用于手动指定链接环节中程序可以调用的库文件。建议 -l 和库文件名之间不使用空格,比如 -lstdc++。
-ansi对于 C 语言程序来说,其等价于 -std=c90;对于 C++ 程序来说,其等价于 -std=c++98。
-std=手动指令编程语言所遵循的标准,例如 c89、c90、c++98、c++11 等。
-g启用这个选项会在最后生成的可执行文件中包含源代码的符号信息,这样才能在后续过程中使用gdb等调试工具对程序进行调试。
-Wall这个选项表示在编译源代码的过程中报告其中出现的警告信息,不开启此选项的话gcc默认可能会忽略某些编译过程中出现的警告。
-Werror开启此选项后,gcc在编译源代码的时候不止会捕获所有的警告信息,而且在遇到警告时会停止编译。开启次选项的目的主要在于提高代码的书写质量。
-I此选项后面一个目录。默认情况下,gcc会从系统的头文件目录(Linux下是/usr/include/)下搜索头文件,加上此选项后,此选项后面所跟着的目录也会被列入头文件搜索路径。
-O0效果等同于不加-O选项,即不对代码做任何程度的优化。
-O1这是最基本的优化等级。编译器会在不花费太多编译时间的同时试图生成更快更小的代码。这些优化是非常基础的,但一般这些任务肯定能顺利完成。
-O2-O1的进阶。这是推荐的优化等级,除非你有特殊的需求。-O2会比-O1启用多一些标记。设置了-O2后,编译器会试图提高代码性能而不会增大体积和大量占用的编译时间。
-O3这是最高最危险的优化等级。用这个选项会延长编译代码的时间,并且在使用gcc4.x的系统里不应全局启用。自从3.x版本以来gcc的行为已经有了极大 地改变。在3.x,-O3生成的代码也只是比-O2快一点点而已,而gcc4.x中还未必更快。用-O3来编译所有的软件包将产生更大体积更耗内存的二进 制文件,大大增加编译失败的机会或不可预知的程序行为(包括错误)。这样做将得不偿失,记住过犹不及。在gcc 4.x.中使用-O3是不推荐的
-C在预处理后的输出中保留源文件中的注释
-B<目录>将目录添加到编译器的搜索路径中
-V显示所有编译步骤的调试信息。
-static使用静态链接。
-shared生成共享文件
-D开启编译时的宏
-fPIC创建独立的(无关联的)地址信息代码。
-m486针对 486 进行代码优化
-w不生成任何警告信息
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值