coost
coost copied to clipboard
不能和ZeroMQ库同时使用
测试环境: 平台:win10 ide:vs2022 ZeroMQ版本:4.3.4(当前最新版) coost版本:v3.0.0/master
测试问题:
1、头文件必须如下顺序定义:
#include "co/all.h" #include "zmq.hpp"
如果颠倒位置则报错:
co\byte_order.h(37): error C3861: “htonll”: 找不到标识符
2、遵守第一点时通过编译,运行时会报错
测试代码:
`
#include
#include "co/all.h" #include "zmq.hpp"
int main(int argc, char **argv) { co::WaitGroup w{}; w.add(1);
go([&] { std::string request{"hello"};
zmq::context_t context(1);
// 初始化socket,这行加入就会报错
zmq::socket_t socket(context, zmq::socket_type::req);
socket.connect("tcp://127.0.0.1:5555");
w.done();
});
w.wait();
return 0; }
`
报错如下:

1、头文件必须如下顺序定义: #include "co/all.h" #include "zmq.hpp" 如果颠倒位置则报错: co\byte_order.h(37): error C3861: “htonll”: 找不到标识符
这个可能是 winsock 版本冲突,先 include coost 头文件,使用 winsock2 应该能解决冲突。
第2个问题需要提供进一步的信息,使用 master 最新代码试试