編譯過程
編譯過程分為四步:預處理、編譯、彙編、連線
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程式設計 如何組織編寫模板程式 前言常遇到詢問使用模板到底是否容易的問題,我的回答是 模板的使用是容易的,但組織編寫卻不容易 看看我們幾乎每天都能遇到的模...