vs2015中以静态库链接ZeroMQ

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宏,方便移动项目)
vs2015中以静态库链接ZeroMQ_第1张图片
step2,添加ZMQ_STATIC的宏定义,如下所示
vs2015中以静态库链接ZeroMQ_第2张图片
step3,在链接器->常规 中添加附加库目录,如下:
vs2015中以静态库链接ZeroMQ_第3张图片
step 4,添加链接所需要的lib,注意这里需要额外附加两个库ws2_32.lib; iphlpapi.lib,否则无法编译通过,截图如下:
vs2015中以静态库链接ZeroMQ_第4张图片
step 5,选择正确的运行库方式(这个要看所用lib的编译方式),这个可以多试几下,我自己电脑的设置如下:
vs2015中以静态库链接ZeroMQ_第5张图片
至此,终于可以正确编译运行了。

你可能感兴趣的:(C/C++,MQ)