我在 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,因为它对标题位置非常满意。
提前谢谢了。