-m32
- 指定编译为32位应用程序
-m64
- m64指定编译为64位应用程序
-ggdb
- 产生GDB可调试的信息
-fPIC
- 生成位置无关的代码
- 这份代码如果未来要用在动态库上,就需要生成与位置无关的代码
-D
- 1234-Dmacro相当于C语言中的#define macro。-Dmacro=defn相当于C语言中的#define macro=defn。
-Wall
- 1一般使用该选项,允许发出GCC能够提供的所有有用的警告。也可以用-W{warning}来标记指定的警告。
-pipe
- 使用管道代替编译中临时文档,增加编译效率,在使用非gnu汇编工具的时候,可能有些问题
- https://blog.51cto.com/elephantliu/684257
-O2
- 12345-O0-O1-O2-O3编译器优化选项分为4个级别,-O0表示没有优化,-O1为缺省值,建议使用-O2,-O3优化级别最高。
-funroll-loops
- gcc来检查代码,进行循环展开,减少循环次数提高性能
-fstack-protector-all
- 启用堆栈保护,为所有函数插入保护代码。
-rdynamic
- 相比-g选项, -rdynamic 却是一个 连接选项 ,它将指示连接器把所有符号(而不仅仅只是程序已使用到的外部符号)都添加到动态符号表(即.dynsym表)里,以便那些通过 dlopen() 或 backtrace() (这一系列函数使用.dynsym表内符号)这样的函数使用。
-shared
- 1此选项将尽量使用动态库,为默认选项。优点:生成文件比较小。缺点:运行时需要系统提供动态库。
错误不提示(忽略警告)
- -Wno-write-strings
- 应为你写的char* 是具有c风格的字符串,所以g++不识别
- -Wno-write-strings
常用的g++编译FLAG总结
本文标题:常用的g++编译FLAG总结
文章作者:Yang Shuai
发布时间:2019年04月24日 - 14:04
最后更新:2019年04月24日 - 14:04
原始链接:https://ysbbswork.github.io/2019/04/24/常用的g-编译FLAG总结/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。
坚持原创技术分享,您的支持将鼓励我继续创作!