编译zmq并不难,但是重头摸索,还是要耗费些许时间的,留个记录。
网络上的文章,都会让你去这里下载:https://zeromq.org/download/
进去以后,发现已经没有下载链接了,至少今天没有了。所以,只能重新编译。
1. 源码
https://github.com/zeromq/libzmq
当前最新的发布:
https://github.com/zeromq/libzmq/releases/tag/v4.3.4
拉到最下方,下载源码。
2. cmake生成工程
值得注意的是,源码路径libzmq-4.3.4\builds\deprecated-msvc,里面有很多版本的vs工程,都是弃用的,如果用它,会出现很多奇怪报错,不要用它。
当前使用的cmake version:3.15.5
在CMAKE中选择源码目录、编译目录、VS版本和位数等
最后完成:
3.用vs打开
在刚刚设置的目录中,我的目录是:D:\workspace\libzmq-4.3.4\output
找到ZeroMQ.sln,用vs2017打开
讲工程libzmq设置成启动项目。
编译,成功。
4.生成位置:
如果你选择的Debug,那么就在
D:\workspace\libzmq-4.3.4\output\bin\Debug\libzmq-v141-mt-gd-4_3_4.dll
D:\workspace\libzmq-4.3.4\output\lib\Debug\libzmq-v141-mt-gd-4_3_4.lib
D:\workspace\libzmq-4.3.4\include\
5.使用注意:
在使用过程中,一定要注意,你的工程是x64,就用64位的库;x86就用x86的库,否则会报错:
1>zmqpubsub.obj : error LNK2019: 无法解析的外部符号 _zmq_ctx_new,该符号在函数 _main 中被引用
1>zmqpubsub.obj : error LNK2019: 无法解析的外部符号 _zmq_ctx_destroy,该符号在函数 _main 中被引用
1>zmqpubsub.obj : error LNK2019: 无法解析的外部符号 _zmq_msg_init,该符号在函数 _main 中被引用
1>zmqpubsub.obj : error LNK2019: 无法解析的外部符号 _zmq_msg_data,该符号在函数 _main 中被引用
1>zmqpubsub.obj : error LNK2019: 无法解析的外部符号 _zmq_socket,该符号在函数 _main 中被引用
1>zmqpubsub.obj : error LNK2019: 无法解析的外部符号 _zmq_close,该符号在函数 _main 中被引用
1>zmqpubsub.obj : error LNK2019: 无法解析的外部符号 _zmq_bind,该符号在函数 _main 中被引用
1>zmqpubsub.obj : error LNK2019: 无法解析的外部符号 _zmq_send,该符号在函数 _main 中被引用
生活愉快!