亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦安全 > 系統(tǒng)安全 > gcc如何編譯C語言程序

      gcc如何編譯C語言程序

      時間: 林澤1002 分享

      gcc如何編譯C語言程序

        gcc編譯C語言程序的方法是什么,那么gcc如何編譯C語言程序的呢/下面是學(xué)習(xí)啦小編收集整理的gcc如何編譯C語言程序,希望對大家有幫助~~

        gcc編譯C語言程序的方法

        編寫c代碼,并輸入以下代碼,生成文件hello.c

        [root@wahoo test]# vim hello.c

        #include

        #define DISPLAY "hello c!"

        int main(void)

        {

        printf("%s\n", DISPLAY );

        return 0;

        }

        ZZ(說明:ZZ當(dāng)前文件進行快速保存操作)

        預(yù)編譯(Preprocessing)

        會對各種預(yù)處理指令(#include #define #ifdef 等#開始的代碼行)進行處理,刪除注釋和多余的空白字符,生成一份新的代碼

        [root@wahoo test]#gcc -E hello.c -o hello.i

        E 參數(shù) 通知gcc對目標(biāo)文件進行預(yù)編譯,這里是對文件hello.c文件

        o 參數(shù) 是對命令輸出結(jié)果進行導(dǎo)入操作,這里是把 gcc -E hello.c 操作結(jié)果輸出到文件hello.i(命名要自定義)中進行保存

        這個命令執(zhí)行完后我們目錄下多了一個文件hello.i,你可以查閱一下文件的內(nèi)容。

        編譯(Compilation)

        對代碼進行語法、語義分析和錯誤判斷,生成匯編代碼文件

        [root@wahoo test]#gcc -S hello.i -o hello.s

        S 參數(shù) 通知gcc對目標(biāo)文件進行編譯,這里是對文件hello.i文件

        通過這一步我們知道 C語言跟匯編的 關(guān)系,至于他們之前是如何進行轉(zhuǎn)換的,大家可以進行更深入的學(xué)習(xí)與探討。

        此時目錄下多了一個hello.s文件,內(nèi)容如圖

        匯編(Assembly)

        把匯編代碼轉(zhuǎn)換與計算機可認(rèn)識的二進制文件,要知道計算機只認(rèn)識0和1呢

        [root@wahoo test]#gcc -c hello.s -o hello.o

        c 參數(shù) 通知gcc對目標(biāo)文件執(zhí)行指令轉(zhuǎn)換操作

        此步驟我們得到文件hello.o

        大家也同樣打開文件查看一下,這個文件里面幾乎沒幾個字符大家能看懂,這就對了,但大家可以通過這種方法將其轉(zhuǎn)化為我們可讀的形式:

        [root@wahoo test]#readelf -a hello.o

        鏈接(Linking/Build)

        通俗的講就是把多個*.o文件合并成一個可執(zhí)行文件,二進制指令文件

        [root@wahoo test]#gcc hello.o -o hello

        這里我們就得到了一個可以直接在系統(tǒng)下執(zhí)行的文件 hello

        我們也可以對這個文件進行readelf操作,也可以進行二進制指令轉(zhuǎn)匯編的操作

        [root@wahoo test]#objdump -d hello

        程序運行

        [root@wahoo test]#./hello

        hello c!

        總結(jié):gcc 編譯c程序的主要過程包括 預(yù)編譯->編譯->匯編->連接 四個過程,每個過程都分別進行不同的處理,了解了這其中的一些原理,對c編程的理解大有益處


      gcc如何編譯C語言程序相關(guān)文章:

      1.Linux下C語言編程基礎(chǔ)知識

      2.Mac系統(tǒng)怎樣使用終端編寫c語言程序

      3.在Linux下編譯C或C++程序的教程

      4.什么是gcc gcc的用法

      5.Linux GCC命令的詳解

      6.c語言學(xué)習(xí)需要的時長以及方法

      3450180