我們正在編制使用其中的文件,首先製作成目標文件泛型的軟件,它們是建立像這樣:GCC連接帶有警告/優化標誌的目標文件
arm-unknown-linux-gnu-gcc -c -O2 -Wstrict-prototypes -Wdeclaration-after-statement -fsigned-char -I/opt/tm-sdk/include -mlittle-endian -Wno-trigraphs -fno-strict-aliasing -fno-omit-frame-pointer -march=armv4 -mtune=arm9tdmi -Wall -Wextra -o src/flex.o src/flex.c
...
arm-unknown-linux-gnu-gcc -c -O2 -Wstrict-prototypes -Wdeclaration-after-statement -fsigned-char -I/opt/tm-sdk/include -mlittle-endian -Wno-trigraphs -fno-strict-aliasing -fno-omit-frame-pointer -march=armv4 -mtune=arm9tdmi -Wall -Wextra -o src/flexdb.o src/flexdb.c
然後,他們用鏈接:
arm-unknown-linux-gnu-gcc -o flex src/flex.o src/flexdb.o src/flexio.o src/flexprotocol.o src/flexsettings.o src/flexstate.o -L/opt/tm-sdk/lib -ltag -lrt -ltmreader -lsqlite3 -lsha1
我的問題是: 我們是否需要在鏈接期間包含優化和警告標誌?如果從對象文件創建flex二進制文件時包含-Wall,-Wextra和-O2,它會執行任何操作嗎?
謝謝
編輯:根據反饋澄清意思。
C中的泛型是編譯時表達式。不知道爲什麼這是相關的。哪個「編譯的最後階段」?編譯器運行在一個單一的過程(從用戶視圖) – Olaf
我只是看到這是一個兩步過程。構建目標文件然後組合目標文件。 –
Build!=編譯! – Olaf