<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦知識(shí)大全 > Linux GCC命令的詳解

        Linux GCC命令的詳解

        時(shí)間: 修斌645 分享

        Linux GCC命令的詳解

          GCC 的意思也只是 GNU C Compiler 而已。經(jīng)過(guò)了這么多年的發(fā)展,GCC 已經(jīng)不僅僅能支持 C 語(yǔ)言;它現(xiàn)在還支持 Ada 語(yǔ)言、C++ 語(yǔ)言、Java 語(yǔ)言、Objective C 語(yǔ)言、Pascal 語(yǔ)言、COBOL語(yǔ)言,以及支持函數(shù)式編程和邏輯編程的 Mercury 語(yǔ)言,等等。而 GCC 也不再單只是 GNU C 語(yǔ)言編譯器的意思了,而是變成了 GNU Compiler Collection 也即是 GNU 編譯器家族的意思了。另一方面,說(shuō)到 GCC 對(duì)于操作系統(tǒng)平臺(tái)及硬件平臺(tái)支持,概括起來(lái)就是一句話:無(wú)所不在。下面我們一起了解下。

          1.簡(jiǎn)單編譯

          示例程序如下:

          //test.c#include int main(void){ printf("Hello World!/n"); return 0;}

          這個(gè)程序,一步到位的編譯指令是:

          gcc test.c -o test

          實(shí)質(zhì)上,上述編譯過(guò)程是分為四個(gè)階段進(jìn)行的,即預(yù)處理(也稱(chēng)預(yù)編譯,Preprocessing)、編譯(Compilation)、匯編 (Assembly)和連接(Linking)。

          1.1預(yù)處理

          gcc -E test.c -o test.i 或 gcc -E test.c

          可以輸出test.i文件中存放著test.c經(jīng)預(yù)處理之后的代碼。打開(kāi)test.i文件,看一看,就明白了。后面那條指令,是直接在命令行窗口中輸出預(yù)處理后的代碼。

          gcc的-E選項(xiàng),可以讓編譯器在預(yù)處理后停止,并輸出預(yù)處理結(jié)果。在本例中,預(yù)處理結(jié)果就是將stdio.h 文件中的內(nèi)容插入到test.c中了。

          1.2編譯為匯編代碼(Compilation)

          預(yù)處理之后,可直接對(duì)生成的test.i文件編譯,生成匯編代碼:

          gcc -S test.i -o test.s

          gcc的-S選項(xiàng),表示在程序編譯期間,在生成匯編代碼后,停止,-o輸出匯編代碼文件。

          1.3匯編(Assembly)

          對(duì)于上一小節(jié)中生成的匯編代碼文件test.s,gas匯編器負(fù)責(zé)將其編譯為目標(biāo)文件,如下:

          gcc -c test.s -o test.o

          1.4連接(Linking)

          gcc連接器是gas提供的,負(fù)責(zé)將程序的目標(biāo)文件與所需的所有附加的目標(biāo)文件連接起來(lái),最終生成可執(zhí)行文件。附加的目標(biāo)文件包括靜態(tài)連接庫(kù)和動(dòng)態(tài)連接庫(kù)。

          對(duì)于上一小節(jié)中生成的test.o,將其與C標(biāo)準(zhǔn)輸入輸出庫(kù)進(jìn)行連接,最終生成程序test

          gcc test.o -o test

          在命令行窗口中,執(zhí)行。/test, 讓它說(shuō)HelloWorld吧!

          2.多個(gè)程序文件的編譯

          通常整個(gè)程序是由多個(gè)源文件組成的,相應(yīng)地也就形成了多個(gè)編譯單元,使用GCC能夠很好地管理這些編譯單元。假設(shè)有一個(gè)由test1.c和 test2.c兩個(gè)源文件組成的程序,為了對(duì)它們進(jìn)行編譯,并最終生成可執(zhí)行程序test,可以使用下面這條命令:

        182105 主站蜘蛛池模板: 资源在线观看视频一区二区| 99在线国内在线视频22| 亚洲AV无码东方伊甸园| 乱人伦人妻系列| 国产精品男女爽免费视频| 国产区一区二区现看视频| 四虎永久免费高清视频| 国产亚洲色视频在线| 日韩精品亚洲专在线电影| 亚洲国产精品自产在线播放| 日韩av一区二区三区在线| 国产区二区三区在线观看| 韩国午夜福利片在线观看| 夜夜嗨av一区二区三区| 中文字幕日韩人妻高清在线| 亚洲国产另类久久久精品小说| 三级黄片一区二区三区| 国产一区二区内射最近更新 | 色综合久久综合香蕉色老大| 自拍视频一区二区三区四区 | 国产偷拍自拍视频在线观看| 成人午夜伦理在线观看| 国产精品免费视频不卡| 久久国产精99精产国高潮| 天天躁日日躁狠狠躁一级毛片| 亚洲精品中文字幕日本| 女人与公狍交酡女免费| 久久综合给合久久狠狠狠| 蜜臀久久精品亚洲一区| 中国CHINA体内裑精亚洲日本| 青青草一区在线观看视频 | 色777狠狠狠综合| 99久久亚洲综合精品成人网| 麻豆精品一区综合av在线| 永久黄网站色视频免费直播| 国语精品一区二区三区| 午夜精品区| 亚洲东京色一区二区三区| 成人3D动漫一区二区三区| 国产福利姬喷水福利在线观看 | 无码专区 人妻系列 在线|