Ubuntu下多檔案的連結
阿新 • • 發佈:2018-12-20
一:gcc常用編譯命令選項
假設源程式檔名是test.c。
1. 無選項編譯連結 用法:#gcc test.c 作用:將test.c預處理、彙編、編譯並連結形成可執行檔案。這裡未指定輸出檔案,預設輸出為a.out。
2. 選項 -o 用法:#gcc test.c -o test 作用:將test.c預處理、彙編、編譯並連結形成可執行檔案test。-o選項用來指定輸出檔案的檔名。
3. 選項 -E 用法:#gcc -E test.c -o test.i 作用:將test.c預處理輸出test.i檔案。
4. 選項 -S 用法:#gcc -S test.i 作用:將預處理輸出檔案test.i彙編成test.s檔案。
5. 選項 -c 用法:#gcc -c test.s 作用:將彙編輸出檔案test.s編譯輸出test.o檔案。
6. 無選項鍊接 用法:#gcc test.o -o test 作用:將編譯輸出檔案test.o連結成最終可執行檔案test。
7. 選項-O 用法:#gcc -O1 test.c -o test 作用:使用編譯優化級別1編譯程式。級別為1~3,級別越大優化效果越好,但編譯時間越長。
三:實際操作:包含兩個.c檔案:thanks.c ,thanks_2.c;
thanks.c #include<stdio.h> int main(void) { printf("Hello world!\n); thanks_2(); } thanks_2.c #include<stdio.h> void thanks_2(void) { printf("Thank you!\n"); }
-o後面跟的是生成的二進位制檔名即可執行檔名稱,下面三種寫法均可:
//生成thanks的可執行檔案
gcc -o thanks thanks.o thanks_2.o
gcc thanks.o thanks_2.o -o thanks
//生成預設名稱的可執行檔案
gcc thanks.o thanks_2.o