閱讀775 返回首頁    go 阿裏雲 go 技術社區[雲棲]


C語言編譯流程

 

 

無論是高級程序設計語言還是專用程序設計語言,都不能被計算機係統直接識別,用這些語言所編寫的程序代碼稱為源程序,源程序需要通過預先設計好的專用程序進行轉換,轉換為計算機係統可以識別的機器指令,然後才能交由計算機係統執行。

編輯是程序員通過編輯軟件錄入源代碼的過程。
編譯是文件錄入後,使用編譯程序對源文件進行編譯,目標文件已經是二進製的機器代碼了。
一方麵有些程序使用頻率高,一般程序員難以自行開發,因此編譯係統通常將這些功能預先編譯好,以程序庫的形式提供給程序員使用。
另一方麵,待開發的程序可能不隻一個源文件組成,而是由多個源文件構成的,經過編譯後,每個源文件生成一個不完整的目標文件,將這些目標文件拚在一起,才能構成整個目標文件。
鏈接過程就是對組成整個程序的各個目標文件,程序庫進行封裝,生成最終的目標程序的過程。

 

C語言編譯流程:

預處理-->編譯-->匯編-->鏈接 -->a.out

預處理是把宏定義的指令信息拷貝到源程序中,進行頭文件替換,不檢查語法錯誤。

可以通過gcc編譯命令【gcc -E  源文件(.c) -o 生成文件(.i)】 生成.i文件查看。

編譯通過gcc編譯命令[gcc -S 預處理文件(.i文件)]命令編譯,這時會檢查語法錯誤。生成.s文件。

匯編把文本文件編譯成機器的二進製文件。通過gcc命令【gcc -c .s文件】,生成.o的文件。

鏈接是把多個.o的文件,鏈接成一個可執行的動態文件。輸出.out文件。

最後更新:2017-04-02 16:47:34

  上一篇:go Android 循環讀取名字類似的圖片
  下一篇:go 仿新浪微博的ListView下拉更新功能