我在 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
and
type boost::thread could not be resolved
但我很确定它们源于另一个错误。我肯定会包含 boost 标头,因为编译器不会抱怨我的类将 IO 服务和线程的指针作为成员变量,这只是应该生成工作线程的行才是问题所在。
我相信我已经正确安装了 boost,因为它对标题位置非常满意。
提前谢谢了。
错误在于boost::asio::io_service::run
超载,在这种情况下你必须解决歧义 http://www.boost.org/doc/libs/1_51_0/libs/bind/bind.html#err_overloaded.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)