我正在尝试在Visual Studio 2015中使用ZeroMQ的静态库。我通过克隆git repository生成它,将fd.hpp中的windows.hpp include从#include <windows.hpp>
更改为{{1将libsodium放在正确的位置,然后在vs2015解决方案中批量构建所有内容。
在程序中我试图在ZeroMQ中使用ZeroMQ包含目录,包括ZeroMQ发布静态目录(libzmq \ bin \ Win32 \ Release \ v140 \ static),添加libzqm.lib作为附加依赖项,定义ZMQ_STATIC和_CRT_SECURE_NO_WARNINGS用于我在程序中执行的其他操作,并将运行时库更改为多线程/ MT。
当我尝试编译时,我得到了这些错误:
#include "windows.hpp"
令我困惑的是,当我包含ZeroMQ发布动态目录(libzmq \ bin \ Win32 \ Release \ v140 \ dynamic),其中包含dll时,它编译得很好。但是,当我尝试运行我的程序时,它需要运行dll。这是我试图通过使用ZeroMQ的静态库来避免的。我现在不知道该做什么。
修改
我不相信我的问题与this有关,因为在我看来静态.lib是在.dll中引用的东西,这意味着我需要将.dll包含在我的程序中,并不是这意味着我不是真的静态连接图书馆?有没有人能够在Windows上使用ZeroMQ而不需要dll?
答案 0 :(得分:6)
看起来我也需要链接到这些库。
wsock32.lib
ws2_32.lib
Iphlpapi.lib
答案 1 :(得分:0)
对于任何发现这个并正在阅读此内容的人来说,LetoTheSecond的回答是正确的。
如果你是像我这样的VS的新手,这里有关于该做什么的明确指示。
右键单击您的项目。
转到链接器 - &gt;输入
将以下内容添加到“附加依赖项”
ws2_32.lib;wsock32.lib;Iphlpapi.lib
(为VS2017工作)