自从我在visual studio中使用c ++以来已经有一段时间了,因此我无法告诉我在尝试运行zmq' hello world客户端的调试实例时出错了。
安装zmq 4.0.3并从github下载zmq.hpp master分支后,我从zmq指南中复制/粘贴了hello world客户端。
使用Visual Studio 2010
我导航到项目属性并包含了包含zmq.h的include文件夹和包含zmq.hpp的文件夹
我还将lib文件夹包含在链接器 - > general->附加库依赖项下,并将libzmq-v100-mt-gd-4_0_3.lib文件添加到链接器 - > input->其他依赖。
我还在项目的Debug文件夹中包含了libzmq-v100-mt-gd-4_0_3.dll。
在清理项目之后,在选择Build-> Build Solution和Build-> Compile时编译好了代码,但是当我运行调试实例时,我在第276行得到断言导致中止。
我不明白为什么会这样,并且可以使用一些帮助找出我需要修复的例子来运行这个例子。
更新
我将c ++代码更改为c代码而不更改任何其他内容,并且我能够无问题地编译和运行。
失败的断言是zmq.hpp文件第267行的rc == 0,这是此代码段中的第二个断言。
inline explicit context_t (int io_threads_, int max_sockets_ = 1024)
{
ptr = zmq_ctx_new ();
if (ptr == NULL)
throw error_t ();
int rc = zmq_ctx_set (ptr, ZMQ_IO_THREADS, io_threads_);
ZMQ_ASSERT (rc == 0);
rc = zmq_ctx_set (ptr, ZMQ_MAX_SOCKETS, max_sockets_);
ZMQ_ASSERT (rc == 0);
}