compile,build和execute的區別
阿新 • • 發佈:2019-01-29
如果你學了彙編和編譯就應該清楚了~~
一個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,重新編譯、連線所有檔案。
總之,c程式的生成可圖示如下:
編寫原始碼->編譯->連線,也叫生成->執行
對應的各個階段處理的檔案的副檔名為:
c或cpp->obj->exe。
c程式是編譯執行的,還有一種程式是解釋執行的,如java,它的原始檔經過編譯後形成副檔名為class的中間程式碼,之後不做連線生成exe檔案,而是直接將這種.class的中間程式碼拿到java虛擬機器平臺上,由直譯器解釋執行。這種方式效率較低,但較靈活。
一個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,重新編譯、連線所有檔案。
總之,c程式的生成可圖示如下:
編寫原始碼->編譯->連線,也叫生成->執行
對應的各個階段處理的檔案的副檔名為:
c或cpp->obj->exe。
c程式是編譯執行的,還有一種程式是解釋執行的,如java,它的原始檔經過編譯後形成副檔名為class的中間程式碼,之後不做連線生成exe檔案,而是直接將這種.class的中間程式碼拿到java虛擬機器平臺上,由直譯器解釋執行。這種方式效率較低,但較靈活。