我在 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/