1.編譯過程的任務
將高階語言**解釋為機器指令
這個過程由編譯器完成
2.編譯過程的四個階段
(1)預處理
展開標頭檔案,巨集替換,刪除注釋
(2)編譯
檢查語義語法錯誤,若沒有錯誤將c語言解釋為組合語言
(3)彙編
將彙編**解釋為二進位制的cpu指令
(4)鏈結
將所有的二進位制指令**打包到一起(不僅是打包我們自己的**,還要打包庫函式指令**),進而組織成為可執行程式
3.linux下程式的編譯過程
gcc(c語言編譯器)對應的linux指令
-e:只進行預處理
-s:只進行編譯處理
-c:只進行彙編處理
-o:指定輸出檔名稱
在linux下執行一段c**,可以將這四個步驟依次進行,
各階段的指令如下:
預處理:gcc -e test.c -o test.i
編譯:gcc -s test.i -o test.s
彙編:gcc -c test.s -o test.o
執行:./test.exe
乙個C 程式的執行過程
可能很多人都知道我們把程式打包成dll就丟出去了,但是裡面的具體的執行過程是怎麼樣的呢。程式集是由元資料和il組成的。il是和cpu無關的語言,是微軟的幾個專家請教了外面的編譯器的作則,開發出來的。il比大多數機器語言都要高階一點。il能夠訪問和操作物件型別,並提高了指令來初始化物件,呼叫物件上的虛...
乙個C程式的編譯過程(Linux環境下Gcc)
一 以下是c程式一般的編譯過程 從圖中看到 將編寫的乙個c程式 源 轉換成可以在硬體上執行的程式 可執行 需要進行編譯階段 和鏈結這兩個階段。其中,1.編譯階段先通過 編譯器 把乙個.c cpp 源 編譯成 s的彙編 再經過 彙編器 把這 個.s的彙編 彙編成 o 的 目標 2.聯結器 通過連線其他...
C程式編譯過程
題記 前幾天去華為面試實習生,面試官問了個問題,讓我說出乙個程式的詳細編譯過程,當時磕磕絆絆說了一堆東西,事後自己都不知道當時說了什麼,慚愧。c語言編譯過程 編譯,編譯程式讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並且按照作業系...