2

我在 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 头文件,因为编译器并没有抱怨我的类有指向 IO 服务和线程的指针作为成员变量,它只是应该产生工作线程的行,这就是问题所在。

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

提前谢谢了。

4

1 回答 1

3

错误是boost::asio::io_service::run重载,在这种情况下,您必须解决歧义

于 2012-09-25T06:14:58.613 回答