linux編譯命令大全
linux下編譯不同程序用到的命令也是不同,編譯程序的命令不在少數(shù),下面由學(xué)習(xí)啦小編為大家整理了linux編譯命令大全的相關(guān)知識(shí),希望大家喜歡!
linux編譯命令大全1.gcc
假設(shè)源程序文件名為test.c。
1. 無選項(xiàng)編譯鏈接
用法:gcc test.c
作用:將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件。這里未指定輸出文件,默認(rèn)輸出為a.out。
2. 選項(xiàng) -o
用法:gcc test.c -o test
作用:將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件test。-o選項(xiàng)用來指定輸出文件的文件名。
3. 選項(xiàng) -E
用法:gcc -E test.c -o test.i
作用:將test.c預(yù)處理輸出test.i文件。
4. 選項(xiàng) -S
用法:gcc -S test.i
作用:將預(yù)處理輸出文件test.i匯編成test.s文件。
5. 選項(xiàng) -c
用法:gcc -c test.s
作用:將匯編輸出文件test.s編譯輸出test.o文件。
6. 無選項(xiàng)鏈接
用法:gcc test.o -o test
作用:將編譯輸出文件test.o鏈接成最終可執(zhí)行文件test。
7. 選項(xiàng)-O
用法:gcc -O1 test.c -o test
作用:使用編譯優(yōu)化級(jí)別1編譯程序。級(jí)別為1~3,級(jí)別越大優(yōu)化效果越好,但編譯時(shí)間越長。
補(bǔ)充:linux編譯多源文件的方法
如果有多個(gè)源文件,基本上有兩種編譯方法:
[假設(shè)有兩個(gè)源文件為a.cpp,b.cpp,分別定義兩個(gè)類A和B,main.cpp包含A類和B類
1. 多個(gè)文件一起編譯
用法:gcc a.cpp b.cpp main.cpp -o main.o
作用:將a.cpp、b.cpp和main.cpp分別編譯后鏈接成main.o可執(zhí)行文件。
2. 分別編譯各個(gè)源文件,之后對(duì)編譯后輸出的目標(biāo)文件鏈接。
用法:gcc -c a.cpp -o a.o //將a.cpp編譯成a.o
gcc -c b.cpp -o b.o //將b.cpp編譯成b.o
gcc -c main.cpp -o main.o //將main.cpp編譯成main.o
gcc -a.o main.o -o main //將a.o、b.o和main.o鏈接成main可執(zhí)行文件
以上兩種方法相比較,第一種方法編譯時(shí)需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
3. 如果要編譯的文件都在同一個(gè)目錄下,可以用通配符gcc *.c -o 來進(jìn)行編譯。