版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁(yè)Linux的gcc編譯過(guò)程介紹
1.gcc編譯器的安裝
工作中,在(Linux)環(huán)境下,有過(guò)量產(chǎn)項(xiàng)目的公司,gcc一般都是已經(jīng)安裝好了的。如果需要安裝,請(qǐng)從官網(wǎng)(下載)或網(wǎng)上找資源下載
此處不贅述安裝過(guò)程了
查看是否安裝成功:gcc-v能查到gcc版本號(hào),說(shuō)明安裝成功
2.編譯過(guò)程介紹:
最開始學(xué)習(xí)(編程)的時(shí)候,一般都是用IDE去編譯的,不管是IDE還是gcc編譯的時(shí)候都會(huì)有四個(gè)過(guò)程
一個(gè)編譯過(guò)程一般要經(jīng)過(guò)四個(gè)過(guò)程:
預(yù)處理編譯(匯編)鏈接
預(yù)處理:展開頭文件/宏替換/去掉解釋/條件編譯
編譯:檢查語(yǔ)法,生成匯編代碼
匯編:匯編代碼轉(zhuǎn)換機(jī)器碼,但還不可執(zhí)行
鏈接:將要用到的庫(kù)鏈接到一起生成可執(zhí)行程序
gcc首先調(diào)用cpp進(jìn)行預(yù)處理,在預(yù)處理過(guò)程中,對(duì)源代碼文件中的文件包含(include)、預(yù)編譯語(yǔ)句(如宏定義define等)進(jìn)行分析。接著調(diào)用cc1進(jìn)行編譯,這個(gè)階段將預(yù)處理得到的源代碼文件,進(jìn)行“翻譯轉(zhuǎn)換”,產(chǎn)生出機(jī)器語(yǔ)言的目標(biāo)程序,得到機(jī)器語(yǔ)言的匯編文件。匯編過(guò)程是針對(duì)匯編語(yǔ)言的步驟,調(diào)用as進(jìn)行工作,一般來(lái)講,.S為后綴的匯編語(yǔ)言源代碼文件和匯編、.s為后綴的匯編語(yǔ)言文件經(jīng)過(guò)預(yù)編譯和匯編之后都生成以.o為后綴的目標(biāo)文件。當(dāng)所有的目標(biāo)文件都生成之后,gcc就調(diào)用ld來(lái)完成最后的關(guān)鍵性工作,這個(gè)階段就是鏈接。在鏈接階段,所有的目標(biāo)文件被安排在可執(zhí)行程序中的恰當(dāng)?shù)奈恢?,同時(shí),該程序所調(diào)用到的庫(kù)函數(shù)也從各自所在的庫(kù)中鏈到合適的地方。
3.gcc的使用:
3.1簡(jiǎn)單使用
命令格式:gcc[選項(xiàng)][文件名]
以編譯單個(gè)文件為例,最簡(jiǎn)單的使用方法:
gcc(te)st.c//默認(rèn)生成可執(zhí)行文件的名字為a.out
指定可執(zhí)行文件的名字:gcc–otesttest.c//指定生成可執(zhí)行文件的名字為test
3.2gcc編譯經(jīng)歷的四個(gè)過(guò)程:
(1)預(yù)處理:gcc-Etest.c-otest.i//生成預(yù)編譯文件
(2)編譯:gcc-Stest.i-otest.s//生成匯編代碼
(3)匯編:gcc-ctest.s-otest.o(或astest.s-otest.o)//生成目標(biāo)文件
(4)鏈接:gcc-otesttest.o//鏈接,生成可執(zhí)行文件
3.3gcc常用選項(xiàng)
選項(xiàng)含義-E只預(yù)編譯,不做任何處理-c只編譯不鏈接,生成目標(biāo)文件”.o”-S只編譯不會(huì)匯編,生成匯編代碼”.s”-g在執(zhí)行過(guò)程中包含標(biāo)準(zhǔn)調(diào)試信息-ofile指定將file文件作為輸出文件-v打印出編譯器內(nèi)部編譯各過(guò)程的命令行信息和編譯器的版本-Idir在頭文件的搜索路徑列表中添加dir目錄3.4gcc支持的后綴名
后綴名所對(duì)應(yīng)的語(yǔ)言.cC原始程序.C/.cc/.cxx(C++)原始程序.mObjec(ti)ve.c原始程序.i已經(jīng)預(yù)處理的C原始程序.ii已經(jīng)預(yù)處理的C++原始程序.s/.S匯編語(yǔ)言原始程序.h預(yù)處理文件(頭文件).o目標(biāo)文件4.靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)
鏈接可分為動(dòng)態(tài)鏈接和靜態(tài)鏈接:
靜態(tài)庫(kù)是指編譯鏈接時(shí),把庫(kù)文件的代碼全部加入到可執(zhí)行文件中,因此生成的文件比較大,但在運(yùn)行時(shí)也就不再需要庫(kù)文件了。其后綴名一般為“.a”。
動(dòng)態(tài)庫(kù)與之相反,在編譯鏈接時(shí)并沒(méi)有把庫(kù)文件的代碼加入到可執(zhí)行文件中,而是在程序執(zhí)行時(shí)由運(yùn)行時(shí)鏈接文件加載庫(kù),這樣可以節(jié)省系統(tǒng)的開銷。動(dòng)態(tài)庫(kù)一般后綴名為“.so”。
gcc在編譯時(shí)默認(rèn)使用動(dòng)態(tài)庫(kù)鏈接,加上-stat(ic)參數(shù)則采用靜態(tài)鏈接。
gcctest.o-static-otest_static
可看出鏈接靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù),最終生成的可執(zhí)行文件大小相差很多
動(dòng)態(tài)庫(kù)鏈接,加上-static參數(shù)則采用靜態(tài)鏈接。
gcctest.o-static-otest_static
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年新疆能源職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案詳解1套
- 婦幼兒保科護(hù)士面試題及答案
- 遠(yuǎn)東教育國(guó)考面試題目及答案
- 自學(xué)公務(wù)員面試題及答案
- 2025年派往某事業(yè)單位科研技術(shù)與項(xiàng)目技術(shù)招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 2025年陸軍第七十二集團(tuán)軍醫(yī)院社會(huì)招聘11人備考題庫(kù)及完整答案詳解一套
- 2025年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院公開招聘工作人員26人備考題庫(kù)(第二批)及一套完整答案詳解
- 安國(guó)市2025年高校畢業(yè)生就業(yè)服務(wù)專項(xiàng)活動(dòng)招聘?jìng)淇碱}庫(kù)及答案詳解一套
- 2025年河北省三河市醫(yī)院招聘36人備考題庫(kù)及參考答案詳解1套
- 2025年上海外國(guó)語(yǔ)大學(xué)國(guó)際教育學(xué)院招聘?jìng)淇碱}庫(kù)及1套完整答案詳解
- 醫(yī)院產(chǎn)科培訓(xùn)課件:《妊娠期宮頸疾病的診治策略》
- 水質(zhì)監(jiān)測(cè)服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 國(guó)家集采中選目錄1-8批(完整版)
- 【員工關(guān)系管理研究國(guó)內(nèi)外文獻(xiàn)綜述2800字】
- 《三只小豬蓋房子》拼音版故事
- YS/T 921-2013冰銅
- GB/T 6072.1-2008往復(fù)式內(nèi)燃機(jī)性能第1部分:功率、燃料消耗和機(jī)油消耗的標(biāo)定及試驗(yàn)方法通用發(fā)動(dòng)機(jī)的附加要求
- GB/T 3883.201-2017手持式、可移式電動(dòng)工具和園林工具的安全第2部分:電鉆和沖擊電鉆的專用要求
- GB/T 27807-2011聚酯粉末涂料用固化劑
- 21大自然的聲音同步練習(xí)(含答案)
- 低壓電氣基礎(chǔ)知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論