c 編譯器編譯過程

2021-07-10 08:34:30 字數 1142 閱讀 7839

編譯過程

編譯過程分為四步:預處理、編譯、彙編、連線

1. 預處理

預處理主要處理原始檔中的「#include」、「#define」等預處理等命令

預處理主要完成的工作有(參考:《程式設計師的自我修養》):

(1) 刪除 #define,展開巨集

(2) 處理條件編譯指令。預處理程式先判斷條件,再根據條件修改源**

(3) 刪除注釋

(4) 新增行號,以及檔名標識。便於除錯

(5) 刪除「#include」,插入相應的標頭檔案

使用gcc -e main.c -o main.i 命令,預處理後得到main.i 檔案

2. 編譯

生成彙編**的過程。

使用gcc -s main.i -o main.s 命令,編譯後得到main.s 檔案

3. 彙編

將彙編**轉化成 機器指令。

使用gcc -c main.c -o main.o 命令,得到目標檔案main.o

4. 連線

通過連線庫檔案,將目標檔案轉化成可執行檔案。

使用命令 gcc -ld

一般情況下,我們直接使用gcc main.c -o main就可以生成可執行程式了。

當然,在windows下使用gcc時,生成的可執行檔案不再是main.out ,而是main.exe檔案

方舟編譯器編譯過程

開發環境推薦ubuntu16.04 sudo apt get y install openjdk 8 jdk git core gnupg flex bison gperf build essential zip curl zlib1g dev libc6 dev i386 lib32ncurses...

C 編譯器執行過程

c c 程式編譯流程 預處理 編譯 彙編 鏈結 具體的就是 源 source coprede 預處理器 processor 編譯器 compiler 匯程式設計序 assembler 目標程式 object code 鏈結器 linker 可執行程式 executables c語言在linux下的基...

編譯器的編譯模板過程

分類 c 模板類 2008 11 05 17 40 4622人閱讀收藏 舉報編譯器 c iostream instantiation linker程式設計 如何組織編寫模板程式 前言常遇到詢問使用模板到底是否容易的問題,我的回答是 模板的使用是容易的,但組織編寫卻不容易 看看我們幾乎每天都能遇到的模...