Linux下常用的gcc參數(shù)
Linux下常用的gcc參數(shù)
;首先說一下gcc和g++分別是gnu的c和c++編譯器,而且它們在進(jìn)行編譯的時(shí)候,一般需要分為四步。①預(yù)處理,對于cpp會生成.i文件,使用預(yù)處理器cpp。②將預(yù)處理后的文件不轉(zhuǎn)換為匯編語言,生成.s文件,使用編譯器egcs。③將匯編文件變成目標(biāo)文件,也就是生成機(jī)器碼,這里就是生成.o文件,使用匯編器as。④連接目標(biāo)代碼,生成可執(zhí)行程序,使用連接器ld。其中主要參數(shù)為。
導(dǎo)讀 ;首先說一下gcc和g++分別是gnu的c和c++編譯器,而且它們在進(jìn)行編譯的時(shí)候,一般需要分為四步。①預(yù)處理,對于cpp會生成.i文件,使用預(yù)處理器cpp。②將預(yù)處理后的文件不轉(zhuǎn)換為匯編語言,生成.s文件,使用編譯器egcs。③將匯編文件變成目標(biāo)文件,也就是生成機(jī)器碼,這里就是生成.o文件,使用匯編器as。④連接目標(biāo)代碼,生成可執(zhí)行程序,使用連接器ld。其中主要參數(shù)為。
![](https://img.51dongshi.com/20250105/wz/18528776852.jpg)
系統(tǒng)大全為您提供?首先說一下gcc和g++分別是gnu的c和c++編譯器,而且它們在進(jìn)行編譯的時(shí)候,一般需要分為四步:①預(yù)處理,對于cpp會生成.i文件,使用預(yù)處理器cpp②將預(yù)處理后的文件不轉(zhuǎn)換為匯編語言,生成.s文件,使用編譯器egcs③將匯編文件變成目標(biāo)文件,也就是生成機(jī)器碼,這里就是生成.o文件,使用匯編器as④連接目標(biāo)代碼,生成可執(zhí)行程序,使用連接器ld其中主要參數(shù)為:-xlanguagefilename它是設(shè)定文件使用的語言,此時(shí)后綴名是無效的,雖然我們約定c語言的后綴是.c,c++語言的后綴名是.cpp,但是此時(shí)我們可以隨意使用后綴名。通常可用的參數(shù)有:c、objective-c、c-header、c++、cpp-output、assembler、assembler-with-cpp。比如我們可以使用命令cpp-xchello.xin-xnonefilename它是關(guān)閉上一個(gè)選項(xiàng),讓gcc根據(jù)文件名的后綴自動判斷文件類型,比如gcc-xchello.xin-xnonehi.c-c是只激活預(yù)處理、編譯和匯編,也就是它只把程序做成obj文件,我們可以使用gcc-chello.c會生成.o的obj文件-S只激活預(yù)處理和編譯,能夠把文件編譯成為匯編代碼,比如我們gcc-Shello.c會生成.s的匯編代碼,我們可以使用文本編輯器查看。-E只激活預(yù)處理,這個(gè)不生成文件,我們需要把它重定向到一個(gè)輸出文件里面,比如gcc-Ehello.c>xin.txt或者gcc-Ehello.c|more來查看。-o指定目標(biāo)名稱,缺省gcc編譯出來的文件是a.out,我們可以使用gcc-ohellohello.c的方式。-pipe使用管道代替編譯中的臨時(shí)文件,使用非gnu匯編工具的時(shí)候可能會有問問題。-undef取消對任何非標(biāo)準(zhǔn)宏的定義-Idir在我們使用#include的時(shí)候,gcc會先在當(dāng)前目錄查找我們所制定的頭文件,如果沒有找到,它會到缺省的頭目錄文件去找,如果使用-I指定了目錄,他會先在我們指定的目錄查找,然后到常規(guī)的目錄去找。-I-是取消前一個(gè)參數(shù)的功能,一般在-Idir之后使用。-C在預(yù)處理的時(shí)候,不刪除注釋信息,一般和-E使用,在分析程序的時(shí)候很方便-M生成文件關(guān)聯(lián)的信息,包含目標(biāo)文件所依賴的所有源代碼,我們可以用gcc-Mhello.c來測試-MM和-M一樣,但是他忽略由#include
造成的依賴關(guān)系-MD和-M相同,但是將輸出導(dǎo)入到.d的文件里面-MMD和-MM相同,把輸出導(dǎo)入到.d的文件里面-library是指定編譯時(shí)使用的庫。-Ldir指定編譯時(shí),搜索庫的路徑,其中dir是我們的目錄的名稱。-O0、-O1、-O2、-O3是編譯器的優(yōu)化選項(xiàng)的四個(gè)級別,其中-O0表示沒有優(yōu)化,-O1為默認(rèn)值,而-O3的優(yōu)化級別最高-g只是編譯器,在編譯的時(shí)候,產(chǎn)生調(diào)試信息-gstabs它以stabs格式產(chǎn)生調(diào)試信息,但是不包含gdb調(diào)試信息-ggdb會產(chǎn)生gdb的調(diào)試信息-static會禁止使用動態(tài)庫,因此編譯出來的東西一般都很大-share會盡量使用動態(tài)庫,所以生成文件很小,但是需要使用動態(tài)庫-Traditional師徒讓編譯器支持傳統(tǒng)C語言特性??以上就是系統(tǒng)大全給大家介紹的如何使的方法都有一定的了解了吧,好了,如果大家還想了解更多的資訊,那就趕緊點(diǎn)擊系統(tǒng)大全官網(wǎng)吧。?本文來自系統(tǒng)大全http:///如需轉(zhuǎn)載請注明!推薦:win7純凈版
Linux下常用的gcc參數(shù)
;首先說一下gcc和g++分別是gnu的c和c++編譯器,而且它們在進(jìn)行編譯的時(shí)候,一般需要分為四步。①預(yù)處理,對于cpp會生成.i文件,使用預(yù)處理器cpp。②將預(yù)處理后的文件不轉(zhuǎn)換為匯編語言,生成.s文件,使用編譯器egcs。③將匯編文件變成目標(biāo)文件,也就是生成機(jī)器碼,這里就是生成.o文件,使用匯編器as。④連接目標(biāo)代碼,生成可執(zhí)行程序,使用連接器ld。其中主要參數(shù)為。
為你推薦