VS2017平台編譯 zmq 4 2 5 過程

2021-09-10 02:42:06 字數 1630 閱讀 5502

為了能夠在windows平台使用zmq進行通訊,因此需要編譯乙個可用的zmq的dll

libzmq是c++語言開發的,正式版本在這裡:

到這篇檔案發布為止,正式穩定版是libzmq 4.3.1, 而本文僅適用4.2.5作為示範

解壓到d:\zeromq資料夾中,

用vs2017開啟工程檔案:」d:\zeromq\zeromq-4.2.5\builds\msvc\vs2015\libzmq.sln」

提示公升級,選擇確定即可(工程自動公升級到vs2017)

編譯,最後提示7個專案中有6個沒有成功編譯。

在github上找到答案,分析visualstudio的sln檔案早期是由cmake生成的,用vs編譯不完美,路徑引用不正確。解決方案是:開啟工程資料夾下的libzmq.import.props檔案,這5個紅線處,都去掉一串「…\libzmq」,同時需要把專案名稱修改為libzmq,變成這樣:

6,儲存。重新開啟工程編譯,pass.

另外,git clone最新的開發版:

用vs2015直接編譯並沒有出現上面的問題。

開個新win32_console工程試驗一下:

server端:

#include 

#include

#include

int main(void)

; zmq_recv(responder,

buffer

,100000,0

);printf(

"received: %s\n"

,buffer);

//sleep(1)

;// do some 'work'

zmq_send(responder,

"world",5

,0);

}return0;

}

client端:

#include

#include "zmq.h"

#include

#include

#include

#include

using namespace std;

#pragma comment(lib, "libzmq.lib")

int main(

int argc, char const *ar**)

; file* fp = null;

fopen_s(

&fp,

"1.txt"

,"ab+");

if(null != fp)

fclose(fp)

;int a, b, c;

zmq_version(

&a,&b,

&c);

cout <<

"zmq-version"

<< a <<

"-"<< b <<

"-"<< c << endl;

for(

int i =

0; i <

1; i++)

return0;

}

zlib庫VS2017編譯步驟

編譯步驟 編譯方法一 解壓原始碼檔案到指定目錄,例如 x zlib 開啟vs2017的developer command prompt for vs2017工具 切換到x zlib contrib masmx86目錄,如果想編譯x64的,可以進入masmx64目錄,我這裡只使用32位 執行bld m...

vs2017下boost庫編譯

編譯 以用tribool 庫 hpp是boost庫獨特檔案,它把c 類的宣告和實現都放在乙個檔案中,也就是 h cpp 所以檔案字尾是 hpp 剩下的少量庫 如 chrono,date time,program options,test,thread等 必須編譯成靜態庫或者動態庫,並在構建時指定連線...

windows系統VS2017編譯boost

2.開啟vs2017 x86 cmd工具,輸入bootstrap.bat,等待初始化完畢 x86編譯 bjam stage toolset msvc 14.1 without graph without graph parallel stagedir d boost boost 1 69 0 bin...