Windows庫連線之靜態庫

2021-05-27 18:30:04 字數 442 閱讀 2302

庫連線分為動態庫和靜態庫。靜態庫還是比較容易的。

首先定義標頭檔案,標頭檔案中宣告函式,可以用extern "c"來標註c風格函式。

然後就寫具體的原始檔,寫出具體**。最後編譯生成.lib檔案。

呼叫靜態庫的時候,將.lib檔案和標頭檔案新增到工程中即可。

靜態庫中沒有dll檔案,而動態庫中有。動態庫更適合多工環境。

下面舉乙個例子

math.h

#ifndef _math_h

#define_math_h

extern"c"

int add(int a,int b);

math.cpp

int add(int a,int b)

return a+b;

編譯生成.lib檔案後,可以寫乙個測試程式,測試程式中匯入math.lib和math.h,就可以直接用add函式了。

WINDOWS靜態庫與動態庫

編譯靜態庫時,只會產生.lib檔案。所有資料都在lib檔案中。靜態庫的使用方式只有一種,即靜態載入,在程式編譯鏈結階段,會將靜態庫中的所有資料都鏈結合併到最終生成的exe檔案中,鏈結完成後就不再需要靜態庫檔案,這樣方便程式移植,但是也帶來程式臃腫過大的弊端。同時,如果靜態庫中函式有所變化,需要重新編...

生成動態連線庫 靜態連線庫的 makefile

靜態連線庫 擴充套件名為 a 是.o檔案的簡單集合。在 linux unix下,使用 ar 命令生成靜態連線庫。動態連線庫 擴充套件名為.so 是將.o檔案集合,並增加了匯出表。匯出表是乙個函式名 函式索引 函式位址的陣列。因此,應用程式可以裝載 使用 ldopen函式 後,根據函式名,匯出函式的索...

windows動態庫和靜態庫VS匯入

函式和資料被編譯進乙個二進位制檔案 通常擴充套件名為.lib 在使用靜態庫的情況下,在編譯鏈結可執行檔案時,鏈結器從庫中複製這些函式和資料並把它們和應用程式的其他模組組合起來建立最終的可執行檔案 exe檔案 當發布產品時,只需要發布這個可執行檔案,並不需要發布被使用的靜態庫。在使用動態庫的時候,往往...