- 源程式——經過預處理的源程式——目標程式——可執行程式(以C語言為例)
源程式.c:就是我們寫的代碼
經過前處理器的預處理變成
經過預處理的源程式.i:在編譯之前進行處理宏定義,檔案包含,條件編譯等
經過編譯器(比如gcc)的編譯變成
目標程式.o:就是計算機能看懂的,由0和1組成的機器指令碼組成
經過連接器鏈接函式呼叫變成
可執行程式.exe:計算機可以獨立執行它了
- gcc不僅功能強大,而且可以編譯如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多種語言,而且gcc又是一個交叉平臺編譯器,它能夠在當前CPU平臺上為多種不同體系結構的硬體平臺開發軟體,因此尤其適合在嵌入式領域的開發編譯
- 常用命令:gcc demo.c -o demo
- 程式庫:包含了一些通用函式的資料和二進制可執行機器碼的檔案,其單獨不能夠運行,但是如果將其與其他的可執行程式結合起來就可以執行了
靜態庫:是在執行程式之前就已經加入到執行代碼中,成為執行程式的一部分來執行的
動態庫:是在執行程式啟動時加載到執行代碼中
- 靜態庫與動態庫區別
動態庫只有在使用它的程式執行時才被鏈接使用,而不是將需要的部分直接編譯入可執行檔案中,并且一個動態庫可以被多個程式使用故可稱為共享庫,而靜態庫將會整合到程式中,因此在程式執行時不用加載靜態庫, 從而可知,鏈接到靜態庫會使你的程式臃腫,并且難以升級,但是可能會比較容易部署,而鏈接到動態庫會使你的程式輕便,并且易于升級,但是會難以部署,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/209853.html
標籤:其他
