• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 學習電腦 > 電腦安全 > 系統安全 > gcc如何編譯C語言程序

    gcc如何編譯C語言程序

    時間: 林澤1002 分享

    gcc如何編譯C語言程序

      gcc編譯C語言程序的方法是什么,那么gcc如何編譯C語言程序的呢/下面是學習啦小編收集整理的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當前文件進行快速保存操作)

      預編譯(Preprocessing)

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

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

      E 參數 通知gcc對目標文件進行預編譯,這里是對文件hello.c文件

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

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

      編譯(Compilation)

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

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

      S 參數 通知gcc對目標文件進行編譯,這里是對文件hello.i文件

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

      此時目錄下多了一個hello.s文件,內容如圖

      匯編(Assembly)

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

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

      c 參數 通知gcc對目標文件執行指令轉換操作

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

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

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

      鏈接(Linking/Build)

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

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

      這里我們就得到了一個可以直接在系統下執行的文件 hello

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

      [root@wahoo test]#objdump -d hello

      程序運行

      [root@wahoo test]#./hello

      hello c!

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


    gcc如何編譯C語言程序相關文章:

    1.Linux下C語言編程基礎知識

    2.Mac系統怎樣使用終端編寫c語言程序

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

    4.什么是gcc gcc的用法

    5.Linux GCC命令的詳解

    6.c語言學習需要的時長以及方法

    3450180 主站蜘蛛池模板: 夜来香免费观看视频在线| 四虎1515hm免费国产| 色偷偷女男人的天堂亚洲网| 啊轻点灬大ji巴太粗太长了欧美| 精品一区狼人国产在线| 亚洲精品无码久久| 欧美日本中文字幕| 久久精品桃花综合| 手机看片国产在线| jjzz日本护士| 小h片在线观看| 国产99在线播放| 久久久无码一区二区三区| 青青青国产依人精品视频| 欧美午夜片欧美片在线观看| 国模gogo大胆高清网站女模| 免费观看欧美一级牲片一| 中文无遮挡h肉视频在线观看| 黄在线观看www免费看| 欧美一级视频在线观看| 国产麻豆视频免费观看| 人妻无码久久久久久久久久久| 一区二区三区午夜| 精品国产午夜福利在线观看| 国产成 人 综合 亚洲专 | 天天干天天天天| 18级成人毛片免费观看| 国产成人啪精品视频免费网| 色资源二区在线视频| 成人午夜小视频| 啊啊啊好大好爽视频| 久久91精品国产一区二区| 青青国产线免观看手机版精品| 欧美另类xxx| 国产精品三级av及在线观看| 亚洲欧美日韩国产精品专区| 91在线一区二区三区| 欧美日韩精品一区二区在线观看| 国产网红无码精品视频| 亚洲欧美一区二区三区孕妇| 69视频免费在线观看|