然後利用ar命令將.o檔案生成靜態庫.a檔案:ar cqs libt3.a tt.o
生成的t3.exe比ttt.exe稍大,但是考慮到ttt.exe還帶了乙個dll,t3就小多了。當然這個比較純屬無聊。
另外,生成的.a檔案,改名為.lib檔案也可以,利用vc的cl命令鏈結.a或者.lib都行,都能夠得到正確的exe程式。
當然,使用vc的lib命令也可以把gcc生成的.o檔案轉換為.lib檔案,使用ar命令可以將cl編譯的.obj轉換為.a或者.lib檔案。
gcc test.c -ldl
雖然gcc這裡生成的.a和.lib都能使用,但是動態庫時如果生成.so好像是不行的
GCC編譯動態和靜態鏈結庫
我們通常把一些公用函式製作成函式庫,供其它程式使用。函式庫分為靜態庫和動態庫兩種。靜態庫在程式編譯時會被連線到目標 中,程式執行時將不再需要該靜態庫。動態庫在程式編譯時並不會被連線到目標 中,而是在程式執行是才被載入,因此在程式執行時還需要動態庫存在。本文主要通過舉例來說明在linux中如何建立靜態...
GCC編譯動態和靜態鏈結庫
我們通常把一些公用函式製作成函式庫,供其它程式使用。函式庫分為靜態庫和動態庫兩種。靜態庫在程式編譯時會被連線到目標 中,程式執行時將不再需要該靜態庫。動態庫在程式編譯時並不會被連線到目標 中,而是在程式執行是才被載入,因此在程式執行時還需要動態庫存在。本文主要通過舉例來說明在linux中如何建立靜態...
GCC 編譯使用動態鏈結庫和靜態鏈結庫
1 庫的分類 根據鏈結時期的不同,庫又有靜態庫和動態庫之分。靜態庫是在鏈結階段被鏈結的 好像是廢話,但事實就是這樣 所以生成的可執行檔案就不受庫的影響了,即使庫被刪除了,程式依然可以成功執行。有別於靜態庫,動態庫的鏈結是在程式執行的時候被鏈結的。所以,即使程式編譯完,庫仍須保留在系統上,以供程式執行...