Date: 2019-3-13
前言
Gcc编译器套件中包含了Linux程序编译和链接的整个工具链,其中编译和链接选项控制了编译器和连接器的行为(比如打印输出、警告等)。下面总结了项目中遇到的Gcc编译链接选项的用法。
1、Gcc编译链接选项的用法总结
(1)、gcc选项参数-D,-M以及makefile相关命令
(2)、makefile的override指示符与gcc -ldl选项作用
(3)、GCC的符号可见性——解决多个库同名符号冲突问题
(4)、链接选项-L,-l,-rpath,-rpath-link用法分析
(5)、-Werror, -Wimplict-function-declaration, -w, -Wall
(6)、-D_REENTRANT编译选项的作用
(7)、linux gcc编译参数: -fPIC
(8)、创建动态库时,建议使用的链接选项-Bsymbolic
(9)、GCC选项_-Wl,-soname
(10)、gcc编译选项:-fomit-frame-pointer,-fno-tree-vectorize,-fno-strict-aliasing以及ARM相关选项
(11)、gcc编译参数之-fno-strict-aliasing
(12)、gcc链接参数–whole-archive的作用
(13)、gcc选项含义:CFLAGS、CXXFLAGS、LDFLAGS与LIBS
2、未完待续…
2.1、编译选项-Waggressive-loop-optimizations分析
参考网址:
https://stackoverflow.com/questions/41412118/compiling-postgresql-disable-fno-aggressive-loop-optimizations
https://blog.csdn.net/ljianhui/article/details/9212817
Gcc官方文档解释如下:
3、参考
gcc online docs: https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gcc.pdf