版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
gcc編譯器使用簡(jiǎn)要指南gcc對(duì)文獻(xiàn)的處理需要通過(guò)預(yù)處理->編譯->匯編->鏈接的環(huán)節(jié),從而產(chǎn)生一種可執(zhí)行文獻(xiàn),各部分對(duì)應(yīng)不一樣的文獻(xiàn)類型,詳細(xì)如下:file.c
c程序源文獻(xiàn)file.i
c程序預(yù)處理后文獻(xiàn)file.cxx
c++程序源文獻(xiàn),也可以是file.cc/file.cpp/file.c++file.ii
c++程序預(yù)處理后文獻(xiàn)file.h
c/c++頭文獻(xiàn)file.s
匯編程序文獻(xiàn)file.o
目的代碼文獻(xiàn)gcc
[選項(xiàng)]
文獻(xiàn)列表-ansi
強(qiáng)制完全ANSI一致-c
僅編譯或匯編,生成目的代碼文獻(xiàn),將.c、.i、.s等文獻(xiàn)生成.o文獻(xiàn),其他文獻(xiàn)被忽視-S
僅編譯,不進(jìn)行匯編和鏈接,將.c、.i等文獻(xiàn)生成.s文獻(xiàn),其他文獻(xiàn)被忽視-E
僅預(yù)處理,并發(fā)送預(yù)處理后的.i文獻(xiàn)到原則輸出,其他文獻(xiàn)被忽視-o
file
創(chuàng)立可執(zhí)行文獻(xiàn)并保留在file中,而不是默認(rèn)文獻(xiàn)a.out-g
產(chǎn)生用于調(diào)試和排錯(cuò)的擴(kuò)展符號(hào)表,用于GDB調(diào)試,牢記-g和-O一般不能一起使用-w
取消所有警告-W
給出更詳細(xì)的警告-O
[num]
優(yōu)化,可以指定0-3作為優(yōu)化級(jí)別,級(jí)別0表達(dá)沒(méi)有優(yōu)化-x
language
默認(rèn)為-x
none,即依托后綴名確定文獻(xiàn)類型,加上-x
lan確定背面所有文獻(xiàn)類型,直到下一種-x出現(xiàn)為止-D
macro[=]
類似于源程序里的#define,在-D
macro中的macro可被源程序識(shí)別,例如gcc
-D
NUM
-D
FILE=\"bbs.txt\"
hello.c
-o
hello,第一種-D選項(xiàng)定義宏NUM,在程序中可以使用#ifdef來(lái)檢查與否被設(shè)置,第二個(gè)-D定義宏FILE,在源程序中可用-U
macro
類似于源程序開頭定義#undef
macro,也就是取消源程序中的某個(gè)宏定義-I
dir
將dir目錄加到搜尋頭文獻(xiàn)的目錄中去,并優(yōu)先于gcc中缺省的搜索目錄,有多種-I選項(xiàng)時(shí),按照出現(xiàn)次序搜索-L
dir
將dir目錄加到搜索-lname選項(xiàng)指定的函數(shù)庫(kù)文獻(xiàn)的目錄列表中去,并優(yōu)先于gcc缺省的搜索目錄,有多種-L選項(xiàng)時(shí),按照出現(xiàn)次序搜索-lname
在鏈接時(shí)使用函數(shù)庫(kù)libname.a,鏈接程序在-L
dir指定的目錄和/lib、/usr/lib目錄下尋找該庫(kù)文獻(xiàn),在沒(méi)有使用-static選項(xiàng)時(shí),假如發(fā)現(xiàn)共享函數(shù)庫(kù)libname.so,則使用libname.so進(jìn)行動(dòng)態(tài)鏈接
-fPIC
產(chǎn)生位置無(wú)關(guān)的目的代碼,可用于構(gòu)造共享函數(shù)庫(kù)-static
嚴(yán)禁與共享函數(shù)庫(kù)鏈接-shared
盡量與共享函數(shù)庫(kù)鏈接(默認(rèn))1.編譯單個(gè)文獻(xiàn)vihello.c
//創(chuàng)立源文獻(xiàn)hello.cgcc-ohellohello.c
//編譯為可執(zhí)行文獻(xiàn)hello,在默認(rèn)狀況下產(chǎn)生的可執(zhí)行文獻(xiàn)名為a.out./hello
//執(zhí)行文獻(xiàn),假如只寫hello是錯(cuò)誤的,由于系統(tǒng)會(huì)將hello當(dāng)指令來(lái)執(zhí)行,然后報(bào)錯(cuò)2.編譯多種源文獻(xiàn)vimessage.cgcc-cmessage.c
//輸出message.o文獻(xiàn),是一種已編譯的目的代碼文獻(xiàn)vimain.cgcc-cmain.c
//輸出main.o文獻(xiàn)gcc-oallmain.omessage.o
//執(zhí)行連接階段的工作,然后生成all可執(zhí)行文獻(xiàn)./all注意:gcc對(duì)怎樣將多種源文獻(xiàn)編譯成一種可執(zhí)行文獻(xiàn)有內(nèi)置的規(guī)則,所此前面的多種單獨(dú)環(huán)節(jié)可以簡(jiǎn)化為一種命令。vimessage.cvimain.cgcc-oallmessage.cmain.c./all3.使用外部函數(shù)庫(kù)GCC常常與包括原則例程的外部軟件庫(kù)結(jié)合使用,幾乎每一種linux應(yīng)用程序都依賴于GNUC函數(shù)庫(kù)GLIBC。vitrig.cgcc-otrig-lmtrig.cGCC的-lm選項(xiàng),告訴GCC查看系統(tǒng)提供的數(shù)學(xué)庫(kù)libm。函數(shù)庫(kù)一般會(huì)位于目錄/lib或者/usr/lib中。4.共享函數(shù)庫(kù)和靜態(tài)函數(shù)庫(kù)靜態(tài)函數(shù)庫(kù):每次當(dāng)應(yīng)用程序和靜態(tài)連接的函數(shù)庫(kù)一起編譯時(shí),任何引用的庫(kù)函數(shù)的代碼都會(huì)被直接包括進(jìn)最終二進(jìn)制程序。共享函數(shù)庫(kù):包括每個(gè)庫(kù)函數(shù)的單一全局版本,它在所有應(yīng)用程序之間共享。vimessage.cvihello.cgcc-chello.cgcc-fPIC-cmessage.cgcc-shared-olibmessge.somessage.o其中,PIC命令行標(biāo)識(shí)告訴GCC產(chǎn)生的代碼不要包括對(duì)函數(shù)和變量詳細(xì)內(nèi)存位置的引用,這是由于目前還無(wú)法懂得使用該消息代碼的應(yīng)用程序會(huì)將它鏈接到哪一段地址空間。這樣編譯輸出的文獻(xiàn)message.o可以被用于建立共享函數(shù)庫(kù)。-shared標(biāo)識(shí)將某目的代碼文獻(xiàn)變換成共享函數(shù)庫(kù)文獻(xiàn)。gcc-oall-lmessage-L.hell
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年項(xiàng)目管理與技術(shù)顧問(wèn)協(xié)議
- 2024年行政申訴狀范本匯編與撰寫方法解析3篇
- 2024年高等教育教師職務(wù)聘用協(xié)議電子版版B版
- 2024聘用貨車司機(jī)及運(yùn)輸安全管理合同范本3篇
- 2024年消防應(yīng)急照明安裝合同6篇
- 血常規(guī)報(bào)告單-一文讀懂!(超全版)
- 2025年ktv房間租賃及節(jié)假日特別優(yōu)惠合同3篇
- 2025年度企業(yè)財(cái)務(wù)審計(jì)與稅務(wù)籌劃代理服務(wù)合同2篇
- 一元二次不等式教案5篇
- 仰韶文化中彩陶紋飾常出現(xiàn)魚鳥蛙等構(gòu)圖分析審美文化內(nèi)涵
- 2025年度愛(ài)讀書學(xué)長(zhǎng)主辦的讀書挑戰(zhàn)賽組織合同
- 2024年滄州經(jīng)濟(jì)開發(fā)區(qū)招聘社區(qū)工作者筆試真題
- 2025年安徽省銅陵市公安局交警支隊(duì)招聘交通輔警14人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 服務(wù)推廣合同協(xié)議(2025年)
- 麻風(fēng)病防治知識(shí)課件
- 中國(guó)保險(xiǎn)行業(yè)協(xié)會(huì)官方-2023年度商業(yè)健康保險(xiǎn)經(jīng)營(yíng)數(shù)據(jù)分析報(bào)告-2024年3月
- 痛風(fēng)護(hù)理疑難病例討論
- 文印服務(wù)投標(biāo)方案(技術(shù)方案)
- GB/T 9113-2010整體鋼制管法蘭
- 《環(huán)境監(jiān)測(cè)》土壤環(huán)境質(zhì)量監(jiān)測(cè)方案設(shè)計(jì)
- 關(guān)于歐盟新版EMC標(biāo)準(zhǔn)EN55032的解析
評(píng)論
0/150
提交評(píng)論