尚未声明Boost :: asio - UnregisterWaitEx'

时间:2012-08-12 21:48:35

标签: c++ boost compiler-errors serial-port

我正在尝试构建一个能够读写串行端口的程序。 目前我正在使用一个与boost :: asio一起使用的包装类。 (http://gitorious.org/serial-port

我从win_object_handle_service.ipp(来自boost asio)收到一堆错误
我得到的错误消息是http://pastebin.com/MtcC61cb

此外,在SerialPort库的AsyncSerial.hpp文件中 我在第103行收到错误:

thread t(boost::bind(&asio::io_service::run, &pimpl->io))

编译器错误日志中没有任何内容,但eclipse报告:

  1. boost :: bind是不明确的
  2. 'asio :: io_service :: run'
  3. 的无效重载

    我不确定上面是否是有效的错误,或者它只是eclipse的索引器是愚蠢的



    我的问题是:
    任何人都可以帮助弄清楚为什么我收到此错误信息,以及如何让我的程序编译?

    我也欢迎提供不同串行库的建议。但是我需要它是跨平台的。

    我正在使用MinGW 4.7.1(32位)运行Windows 7 x64编译。

2 个答案:

答案 0 :(得分:4)

我在编译来自boost examples

的chat_client时出现此问题

它是:

boost::thread t(boost::bind(&boost::asio::io_service::run, &io_service));

我将其更改为使用显式转换:

boost::thread t(boost::bind((unsigned long int (boost::asio::io_service::*)())&boost::asio::io_service::run, &io_service));

编译错误消失了

答案 1 :(得分:0)

我发现要解决这些歧义,你需要关闭Eclipse增加的编译错误:

  

项目属性 - > C / C ++一般 - >代码分析。

开启Use project settings

然后禁用相关的Eclipse错误,例如。歧义。