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