linux下編譯不同程序用到的命令也是不同,編譯程序的命令不在少數(shù),下面由學(xué)習(xí)啦小編為大家整理了linux編譯命令大全的相關(guān)知識,希望大家喜歡!
linux編譯命令大全1.gcc
假設(shè)源程序文件名為test.c。
1. 無選項編譯鏈接
用法:gcc test.c
作用:將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件。這里未指定輸出文件,默認(rèn)輸出為a.out。
2. 選項 -o
用法:gcc test.c -o test
winpe是32位時,64位的bootsect.exe文件無法執(zhí)行)5、在pe下進(jìn)入cmd命令窗口,執(zhí)行c:\bootsect.exe/nt60c:。
arm-linux-gcc -wall -o2 -c -o $@ $<-o 只激活預(yù)處理,編譯,和匯編,也就是他只把程序做成obj文件-wall 指定產(chǎn)生全部的警告信息-o2 編譯器對程序提供的編譯優(yōu)化選項,在編譯的時候使用該選項,可以使生成的執(zhí)行文件的執(zhí)行效率提高-c 表示只要求編譯器進(jìn)行編譯,而不要進(jìn)行鏈接,生成以源文件的文件名命名但把其后綴由 .c 或 .cc 變成 .o 的目標(biāo)文件-s 只激活預(yù)處理和編譯,就是指把文件編譯成為匯編代碼arm...。
winpe 是 32 位時, 64 位的bootsect. exe 文件無法執(zhí)行) 5、 在 pe 下進(jìn)入 cmd 命令窗口, 執(zhí)行 c:\bootsect. exe /nt60 c:。
一個選項,用來指定系統(tǒng)是否自動生成業(yè)務(wù)記錄的反轉(zhuǎn)分錄。
3. 選項 -E
用法:gcc -E test.c -o test.i
作用:將test.c預(yù)處理輸出test.i文件。
4. 選項 -S
用法:gcc -S test.i
作用:將預(yù)處理輸出文件test.i匯編成test.s文件。
5. 選項 -c
用法:gcc -c test.s
作用:將匯編輸出文件test.s編譯輸出test.o文件。
6. 無選項鏈接
用法:gcc test.o -o test
作用:將編譯輸出文件test.o鏈接成最終可執(zhí)行文件test。
7. 選項-O
用法:gcc -O1 test.c -o test
作用:使用編譯優(yōu)化級別1編譯程序。級別為1~3,級別越大優(yōu)化效果越好,但編譯時間越長。
補(bǔ)充:linux編譯多源文件的方法
如果有多個源文件,基本上有兩種編譯方法:
如果你把函數(shù)定義在一個.h文件中并讓兩個cpp包含就會造成這個函數(shù)分別在兩個cpp中被定義產(chǎn)生錯誤。
因為inline函數(shù)編譯時需要直接插入函數(shù)代碼,所以不能使extern的,每個編譯模塊(cpp源文件)中必須包含其定義代碼(不是聲明)。
生成的源碼文件可以包含在類原有的源文件里,如在 widget.cpp 里包含:#include"moc_widget.cpp",這種包含方式看起來比較別扭,linux 上的開發(fā)工具 kdevelop 自動生成的代碼是這么用的。
這獎使用main.cpp源文件,main.h文件,main.rc文件構(gòu)造可執(zhí)行文件。
1. 多個文件一起編譯
用法:gcc a.cpp b.cpp main.cpp -o main.o
作用:將a.cpp、b.cpp和main.cpp分別編譯后鏈接成main.o可執(zhí)行文件。
2. 分別編譯各個源文件,之后對編譯后輸出的目標(biāo)文件鏈接。linux命令大全
用法: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í)行文件
以上兩種方法相比較,第一種方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
3. 如果要編譯的文件都在同一個目錄下,可以用通配符gcc *.c -o 來進(jìn)行編譯。