2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、gcc常用選項&使用詳解2008013116:27GCC常用選項&使用詳解[zt]通常所說的GCC是GUNCompilerCollection的簡稱,除了編譯程序之外,它還含其他相關(guān)工具,所以它能把易于人類使用的高級語言編寫的源代碼構(gòu)建成計算機能夠直接執(zhí)行的二進制代碼。GCC是Linux平臺下最常用的編譯程序,它是Linux平臺編譯器的事實標準。同時,在Linux平臺下的嵌入式開發(fā)領(lǐng)域,GCC也是用得最普遍的一種編譯器。GCC之所以被廣

2、泛采用,是因為它能支持各種不同的目標體系結(jié)構(gòu)。例如,它既支持基于宿主的開發(fā)(簡單講就是要為某平臺編譯程序,就在該平臺上編譯),也支持交叉編譯(即在A平臺上編譯的程序是供平臺B使用的)。目前,GCC支持的體系結(jié)構(gòu)有四十余種,常見的有X86系列、Arm、PowerPC等。同時,GCC還能運行在不同的操作系統(tǒng)上,如Linux、Solaris、Windows等。除了上面講的之外,GCC除了支持C語言外,還支持多種其他語言,例如C、Ada、Jav

3、a、ObjectiveC、FTRAN、Pal等。本系列文章中,我們不僅介紹GCC的基本功能,還涉及到一些諸如優(yōu)化之類的高級功能。另外,我們還考察GCC的一些映像操作工具,如size和objcopy等,這將在后續(xù)的文章中加以介紹。二、程序的編譯過程對于GUN編譯器來說,程序的編譯要經(jīng)歷預處理、編譯、匯編、連接四個階段,如下圖所示:從功能上分,預處理、編譯、匯編是三個不同的階段,但GCC的實際操作上,它可以把這三個步驟合并為一個步驟來執(zhí)行。

4、下面我們以C語言為例來談一下不同階段的輸入和輸出情況。在預處理階段,輸入的是C語言的源文件,通常為.c。它們通常帶有.h之類頭文件的包含文件。這個階段主要處理源文件中的#ifdef、#include和#define命令。該階段會生成一個中間文件.i,但實際工作中通常不用專門生成這種文件,因為基本上用不到;若非要生成這種文件不可,可以利用下面的示例命令:gccEtest.cotest.i在編譯階段,輸入的是中間文件.i,編譯后生成匯編語言

5、文件.s。這個階段對應(yīng)的GCC命令如下所示:需要注意的是,要生成可執(zhí)行程序時,一個程序無論有有一個源文件還是多個源文件,所有被編譯和連接的源文件中必須有且僅有一個main函數(shù),因為main函數(shù)是該程序的入口點(換句話說,當系統(tǒng)調(diào)用該程序時,首先將控制權(quán)授予程序的main函數(shù))。但如果僅僅是把源文件編譯成目標文件的時候,因為不會進行連接,所以main函數(shù)不是必需的。四、常用選項許多情況下,頭文件和源文件會單獨存放在不同的目錄中。例如,假設(shè)

6、存放源文件的子目錄名為.src,而包含文件則放在層次的其他目錄下,如.inc。當我們在.src目錄下進行編譯工作時,如何告訴GCC到哪里找頭文件呢?方法如下所示:$gcctest.c–I..incotest上面的命令告訴GCC包含文件存放在.inc目錄下,在當前目錄的上一級。如果在編譯時需要的包含文件存放在多個目錄下,可以使用多個I來指定各個目錄:$gcctest.c–I..inc–I....inc2otest這里指出了另一個包含子目錄

7、inc2,較之前目錄它還要在再上兩級才能找到。另外,我們還可以在編譯命令行中定義符號常量。為此,我們可以簡單的在命令行中使用D選項即可,如下例所示:$gccDTEST_CONFIGURATIONtest.cotest上面的命令與在源文件中加入下列命令是等效的:#defineTEST_CONFIGURATION在編譯命令行中定義符號常量的好處是,不必修改源文件就能改變由符號常量控制的行為。五、警告功能當GCC在編譯過程中檢查出錯誤的話,它

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論