從原始碼到可執行檔案的過程

2021-10-08 07:56:06 字數 577 閱讀 8461

1.預處理

預處理過程主要是處理那些原始檔和標頭檔案中以#開頭的命令,預處理的規則一般如下:

1.對所有的巨集定義進行替換

2.處理所有條件編譯命令

3.處理#include命令,將被包含檔案的內容插入到該命令所在的位置

4.刪除所有的注釋//和/* … */

5.新增行號和檔名標識,便於在除錯和出錯時給出具體的**位置

6.保留所有的#pragma命令,因為編譯器需要使用它們

2.編譯

編譯就是把預處理完的檔案進行一些列的詞法分析、語法分析、語義分析以及優化後生成相應的彙編**檔案。

3.彙編

彙編的過程就是將彙編**轉換成可以執行的機器指令。大部分彙編語句對應一條機器指令,有的彙編語句對應多條機器指令。

彙編過程相對於編譯來說比較簡單,沒有複雜的語法,也沒有語義,也不需要做指令優化,只是根據彙編語句和機器指令的對照表一一翻譯就可以了。

4.鏈結

目標檔案已經是二進位制檔案,與可執行檔案的組織形式類似,只是有些函式和全域性變數的位址還未找到,程式不能執行。鏈結的作用就是找到這些目標位址,將所有的目標檔案組織成乙個可以執行的二進位制檔案。

C 從原始碼到可執行檔案

從乙個cpp檔案到乙個exe檔案,大概經歷了以下過程 預處理 preprocessor 根據預處理命令組裝成新的c c 程式,常以i為副檔名。這個過程包括 巨集的替換 刪除注釋 處理預處理指令 如 include ifdef 編譯 complier 將得到的i檔案翻譯成彙編 即.s檔案。彙編 ass...

程式從原始碼到可執行檔案

cmake和make ide編輯器 是用於編寫源程式的軟體,通過編輯器來編寫源程式檔案。原始檔有特定的格式,由檔案的字尾名來區分,字尾取決於使用的程式語言,如c語言編寫的是c程式檔案,其原始檔以.c為字尾 c 語言編寫的程式原始檔則以.cpp為字尾。更多時候,編輯器是面向程式設計師的,程式編輯器和普...

從原始檔到可執行檔案

建立對於問題思考的能力,培養自己的程式設計思想。原始檔 目標檔案 可執行檔案 原始檔 用偏日常化的語言進行編寫。c cpp 目標檔案 由計算機可識別的二進位制 構成,決定了程式執行的基礎。obj o 可執行檔案 可以執行為程式的檔案。exe out 過程 編譯 編譯過程包括 預處理 標頭檔案 巨集定...