為了能夠在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...