C語言的編譯鏈結過程

2021-07-31 02:34:11 字數 557 閱讀 3958

編寫的乙個c程式(源程式),轉換成可以在硬體上執行的程式(可執行程式),需要進行翻譯環境和執行環境。翻譯環境則包括兩大過程編譯和鏈結,經過編譯和鏈結過程便可形成可執行程式。

一、編譯(將文字形式的源**翻譯成計算機認識的機器語言)

編譯又分為預處理器處理、編譯、彙編。

1.預處理器處理

主要是進行文字操作,包括標頭檔案的包含,#define定義的識別符號替換,巨集替換,注釋刪除,形成.i檔案

2.編譯

通過語法分析,詞法分析,語義分析,符號彙總,翻譯成等價的彙編**,形成.s檔案

3.彙編

將彙編**翻譯成二進位制指令,從而得到目標檔案,彙編過程還會形成符號表。最後形成.o檔案

二、鏈結(主要將有關的目標檔案彼此相互鏈結,從而成為乙個整體)

進行合併段表;符號表的合併和符號表的重定位。

三、linux下預處理、編譯、彙編生成目標檔案

c語言編譯 鏈結過程

c語言的編譯鏈結過程 把c程式 源 轉換成可以在機器上執行的程式 可執行 需要進行編譯和鏈結的過程。1 編譯 主要包含兩個過程 1 預處理 巨集定義 檔案包含 條件編譯。在正式開始編譯之前根據預處理命令來修改原始檔的內容 2 編譯 優化 通過詞法分析和語法分析將指令翻譯成彙編 2 彙編 把組合語言 ...

c 編譯鏈結過程

llinux下編譯乙個c 程式的典型過程 1.編譯預處理 預編譯程式完成的工作,可以說成是對源程式的 替換 工作。經過這個過程,生成乙個沒有巨集定義 沒有條件編譯指令 沒有特殊符號的輸出檔案。2.編譯 優化階段 通過詞法分析 語法分析,在確認所有的指令都符合語法規則之後,將其翻譯成等價的中間 或彙編...

C語言的編譯鏈結過程詳解

c語言的編譯鏈結過程要把我們編寫的乙個c程式 源 轉換成可以在硬體上執行的程式 可執行 需要進行編譯和鏈結。編譯 就是把文字形式源 翻譯為機器語言形式的目標檔案的過程。鏈結是把目標檔案 作業系統的啟動 和用到的庫檔案進行組織,形成最終生成可執行 的過程。過程 如下 從圖上可以看到,整個 的編譯過程分...