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