c++ - linux下用boost::thread创建boost::asio工作线程

标签 c++ boost boost-asio boost-thread

我在 Windows 下使用 boost 一段时间了,现在需要迁移几个现有的应用程序以在 Ubuntu 12 上运行进行演示。此应用程序创建两个工作线程,一个用于记录传入的 UDP 数据,另一个用于监听单独的端口并将该数据打印到屏幕上。

我已经完成了其他所有工作,但由于某种原因,以下行失败,并出现错误“boost::asio::io_service::run 的无效过载”

m_logThread = new boost::thread( boost::bind( &boost::asio::io_service::run, m_ioServicePtr ));

这条线在我的 Win32 机器上工作正常,但在 Linux 上给出了无效的过载错误。

还有另外两个错误:

boost::bind is ambiguous

type boost::thread could not be resolved

但我很确定它们源于另一个错误。我肯定会包含 boost header ,因为编译器不会提示我的类将 IO 服务和线程的指针作为成员变量,这只是应该生成工作线程的行才是问题所在。

我相信我已经正确安装了 boost,因为它对 header 位置非常满意。

提前非常感谢。

最佳答案

错误是 boost::asio::io_service::run 过载,在这种情况下您必须 resolve the ambiguity .

关于c++ - linux下用boost::thread创建boost::asio工作线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12577035/

相关文章:

c++ - Qt - 在不使用 WA_TranslucentBackground 的情况下在 Windows 中绘制一个完全透明的窗口

boost - 在 Boost Jam 文件中将多个静态库组合成单个共享库

c++ - 在 x64 windows 上启用 unicode regex 构建 boost

c++ - 从线程池调用时,boost 的 io_service 是否共享请求线程?

c++ - 运行 boost::asio 套接字示例时我传递给客户端的参数是什么

c++ - 如何复制/移动包含互斥锁的类

c++ - GLFW 3.0/C++ 中的空闲线程时间

c++ - 对齐对 C++11 中的性能真的很重要吗?

c++ - 如何在 C++ 中使用 boost 制作正则表达式?

c++ - 如何使用 Handler 和 boost::asio::async_result