我正在尝试构建一个能够读写串行端口的程序。 目前我正在使用一个与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报告:
我不确定上面是否是有效的错误,或者它只是eclipse的索引器是愚蠢的
我的问题是:
任何人都可以帮助弄清楚为什么我收到此错误信息,以及如何让我的程序编译?
我也欢迎提供不同串行库的建议。但是我需要它是跨平台的。
我正在使用MinGW 4.7.1(32位)运行Windows 7 x64编译。
答案 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错误,例如。歧义。