程式執行過程中的編譯與連線階段
阿新 • • 發佈:2019-01-30
一個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,重新編譯、連線所有檔案。
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,重新編譯、連線所有檔案。