vs2015中以靜態庫鏈結ZeroMQ

2021-09-25 02:23:14 字數 1048 閱讀 9839

windows下編譯zeromq會出現兩種型別的lib:

乙個是動態鏈結時所要用的lib,因為不包含原始碼,因此很小,使用的時候需要將對應的dll放到與exe同級的目錄下;

另乙個是靜態庫,包含原始碼,因此比較大,編譯後不需要依賴dll。

這兩個庫的名字目前(20190708)如下:

1,libzmq-v140-mt-gd-4_3_2.lib (動態)

2,libzmq-v140-mt-sgd-4_3_2.lib (靜態)

注意檔案命名中的 「gd」表示的是debug版本,而第二個lib名字中多出了乙個字母「s」,表示 static。

vs2015以動態庫方式鏈結zeromq,做法和普通的vs動態鏈結方法一樣,就不贅述了。

而以靜態庫的方式鏈結zeromq就比較坑了一點,步驟如下:

step1,在如下位置新增標頭檔案的所在目錄路徑(注意最好用vs巨集,方便移動專案)

step2,新增zmq_static的巨集定義,如下所示

step3,在鏈結器->常規 中新增附加庫目錄,如下:

step 4,新增鏈結所需要的lib,注意這裡需要額外附加兩個庫ws2_32.lib; iphlpapi.lib,否則無法編譯通過,截圖如下:

step 5,選擇正確的執行庫方式(這個要看所用lib的編譯方式),這個可以多試幾下,我自己電腦的設定如下:

至此,終於可以正確編譯執行了。

VS2015 動態鏈結庫 靜態鏈結庫

首先介紹一下靜態庫 靜態鏈結庫 動態庫 動態鏈結庫 的概念,首先兩者都是 共享的方式。靜態庫 在鏈結步驟中,聯結器將從庫檔案取得所需的 複製到生成的可執行檔案中,這種庫稱為靜態庫,其特點是可執行檔案中包含了庫 的乙份完整拷貝 缺點就是被多次使用就會有多份冗餘拷貝。即靜態庫中的指令都全部被直接包含在最...

VS2015靜態編譯設定

首先必須搞清楚專案 專案屬性 配置屬性 c c 生成 執行庫中四個選項的關係 多執行緒除錯dll mdd 對應 md dynamicdebug 多執行緒dll md 對應 md dynamicrelease 多執行緒 mt 對應 md staticrelease 多執行緒 mtd 對應 md sta...

VS2015靜態庫與動態庫的使用

靜態庫建立 略 往往我們使用第三方的比較常見,如果要自己團隊間建立使用也很簡單 標頭檔案的載入 庫檔案的載入 首先需要將 lib同樣拷貝到專案目錄下 方式一 使用 pragma comment lib,lib include stdafx.h include consollib.h include ...