1. 程式人生 > >程式執行過程中的編譯與連線階段

程式執行過程中的編譯與連線階段

一個C程式的生成要經歷以下步驟: 

1.編寫程式碼,生成.c或.cpp檔案,這時候它還是文字的; 

2.編譯,就是Compile,由C編譯程式對你寫的程式碼進行詞法和句法分析,發現並報告錯誤,有錯時編譯不能通過。如若無錯,則生成中間程式碼,副檔名為obj,此時它便是二進位制的了; 

3.連線,在彙編裡稱Link,在C裡叫生成,即Build,它的作用是生成可執行的exe檔案。由於一個程式的原始碼可由多個檔案組成。這些檔案在第二步 中分別編譯,生成各自的目標檔案,這一步的作用便是將這些obj檔案,以及程式中需要的其它庫檔案(dll除外),統一到一個檔案中來,形成單個的exe 檔案。此exe檔案便可以在作業系統下直接運行了。 

上述第二步做完中間程式碼生成的工作後還有個程式碼優化,這裡就不詳講了。 

Compile、Build分別對應編譯和連線這兩個過程。Execute的意思是執行,即生成了exe檔案後執行它。如果你的程式有修改,點這一項它會 彈出視窗問你是否重新編譯和連線,也就是它可以自動把前面的工作都做了。也就是說,Vc選單裡的Execute功能如下: 

1.程式有修改時,或者沒有做前面的編譯連線工作時 

Execute=Compile+Build+執行; 

2.程式編譯連線好後 

Execute僅僅是執行,不再做前面兩項工作。 

當程式有修改時,選擇Execute只重編譯和連線有改動的內容,但這樣做有時候會出錯,這時可選擇Build選單下的Rebuild All,重新編譯、連線所有檔案。