2013/06/16

編譯的過程...

大家都知道程式設計主要是
將人類懂得語言轉為機器懂得語言
雖然都是由同一個CPU與同一種硬碟
但是在不同的作業系統也是有不同的機器語言

那要如何將人類懂的語言轉為機器語言呢?
我們都是透過編譯器來完成這項任務
基本上我們寫了C++的語言之後
我們會執行編譯器
讓它來將我們寫的C++程式語言轉成機器語言

編譯器會經歷以下的過程來轉成執行檔(機器語言)
1. 前處理 (preprocess)
會將引用到的標頭檔(xxx.h)給載入,並處理前置指令與變數
2. 編譯 (compile)
語法檢查以及最佳化程式碼的動作
並且將檔案的內容轉成2進位的目的檔(xxx.o)
3. 連結 (link)
將別人寫好的靜態函式庫(xxx.a)連結到程式中,最後變成執行檔

編譯器會完成執行檔
但是在執行前還是有一件事要做
- 裝載器 (loader)
就是將動態函式庫(xxx.dll)載入到程式中
最後將程式給執行起來

對靜態函式庫與動態函式庫有興趣的人可以參考這篇文章

沒有留言:

張貼留言