日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

gcc使用

 zm8208 2010-01-27

一、基本信息

       1.  gcc --version查看系統(tǒng)上安裝GCC信息。

      

二、使用

       1,gcc -Wall test.c   -Wall 選項(xiàng)用于在編譯過程出問題時(shí)輸出警告信息。

            gcc -Wall test.c -o test.elf    -o 選項(xiàng)用于指定輸出的文件名。

2,把源代碼真正傳給編譯器這前,預(yù)處理器會(huì)執(zhí)行預(yù)處理指令,展開源代碼中的宏。A, -E選項(xiàng)可以在預(yù)處理完成時(shí)停下gcc使用-o選項(xiàng)可以把預(yù)處理的結(jié)果存到一個(gè)文件中。

gcc –E test.c –o test.i

常用的選項(xiàng)有

B, -Dname[=definition]   配合源代碼中的#ifdef name #endif預(yù)處理指令,可以實(shí)現(xiàn)條件編譯。

C,-Uname 取消name定義。

D,-Idirectory[:directory[…]]可以定義多個(gè)目錄用冒號(hào)分開?

E,對(duì)源文件中的#include目錄的搜索順序?yàn)椤?/span>

1)源代碼目錄

2)用-I指定的目錄

3)環(huán)境變量C_INCLUDE_PATHCPATH指定的目錄。

4)系統(tǒng)默認(rèn)的include目錄。

3,編譯。GCC一般會(huì)把匯編語言輸出到臨時(shí)文件,并且在匯編器執(zhí)行完后立刻刪除,但可以使用-S選項(xiàng),讓編譯程序在輸出匯編之后停止。

gcc –S test.c

4, 匯編。這個(gè)過程把匯編語言翻譯成二進(jìn)制文件二進(jìn)制文件是一個(gè)對(duì)像文件,包含機(jī)器執(zhí)行源文件指定的功能,還包含一個(gè)符號(hào)表,這個(gè)符號(hào)表描述源文件中有外部鏈接的所有對(duì)象。

A,-c 選項(xiàng)使得GCC不會(huì)鏈接此程序,而是產(chǎn)生對(duì)象文件。

B,GCC –Wa 選項(xiàng)把命令行參數(shù)傳遞給匯編器,比如我們希望匯編器使用-as=circle.sym選項(xiàng)。可以這樣寫

gcc –v –o circle –Wa,-as=circle.sym.-L circle.c   -Wa后面有一個(gè)逗號(hào),后面是選項(xiàng)列表,選項(xiàng)這間不能有空格。注意這個(gè)L選項(xiàng)不是GCC中的L選項(xiàng)。

5,鏈接,把多個(gè)二進(jìn)制文件鏈接成一個(gè)可執(zhí)行文件,在鏈接過程中必須完成程序中多個(gè)模塊之間的外部參考,把“參考符號(hào)”用對(duì)象實(shí)際的位置代換。簡(jiǎn)單說鏈接就是把多個(gè)對(duì)象文件放在一個(gè)文件中。

有些庫可能不在GCC搜索路徑,有三種方法可以讓GCC找到這些庫。

1),指定庫的完整路徑名

2),使用-L選項(xiàng)指定路徑。

3),把目錄加到LIBRARY_PATH環(huán)境變量中。

6,文件類型。

當(dāng)不是按照GCC的常用命名來命名源文件時(shí)可以用-x file_type選項(xiàng)來指明GCC如何對(duì)待這些文件??梢栽谝粋€(gè)命令行時(shí)多次使用-x選項(xiàng),-x none會(huì)取消這些指示。

 

7,動(dòng)態(tài)鏈接庫??梢允褂?/span>GCC-shared選項(xiàng)建立。程序運(yùn)時(shí)要能找到這些動(dòng)態(tài)庫。以下兩種:A,加到程序運(yùn)行的搜索PAHT中,B,用LD_LIBRARY_PATH指定路徑。

 

8,獨(dú)立程序。

 

9編譯器警告:

-Werror 選項(xiàng)把警告當(dāng)作出錯(cuò)處理。-W開頭的選項(xiàng)啟用大部分警告,

Wswitch-default當(dāng)switch語句沒有default卷標(biāo),此選項(xiàng)會(huì)發(fā)出警告。

-Wall啟用大部分警告,但不是所有。例-Wshadow一個(gè)語句塊的作用域內(nèi)的變量與更大作用域的變量重名時(shí)會(huì)發(fā)出警告。

-Wextra會(huì)對(duì)合法但值得懷疑的地方發(fā)出警告。

 

10,優(yōu)化,

-O0關(guān)閉所有優(yōu)化選項(xiàng)

-O ,-O1

-O2

-O3

-Os優(yōu)化占用空間,性能沒有優(yōu)化。

 

-f可以在選擇一種優(yōu)化而關(guān)閉其中的一些優(yōu)化技術(shù)。

 

11,用于特定架構(gòu)的選項(xiàng)。

 

12 調(diào)試,可以使用-g選項(xiàng)允許GCC在對(duì)象文件和執(zhí)行文件中包含符號(hào)表和源代碼行號(hào)信息。

 

13,剖析,使用-p選項(xiàng)會(huì)在程序中加入一個(gè)特別的函數(shù),在執(zhí)行時(shí)輸出剖析信息??梢酝ㄟ^剖析信息了解哪些函數(shù)最耗時(shí)。剖析信息存成一個(gè)名為mon.out文件,可以使用prof工具分析。

 

 

 

14 環(huán)境變量

CPATH,C_INCLUDE_PATH

COMPILER_PATH

GCC_EXEC_PREFIX

LIBRARY_PATH

LD_LIBRARY_PATH

TMPDIR

 

各種先項(xiàng)參見《C語言核心技術(shù)》521頁或GCC參考手冊(cè)。

 

 

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多