1. 程式人生 > >Ubuntu下多檔案的連結

Ubuntu下多檔案的連結

一: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