0

シリアルポートの読み取りと書き込みができるプログラムを作成しようとしています。現在、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'の無効なオーバーロード

上記が有効なエラーなのか、それとも日食のインデクサーがバカなのかはわかりません



私の質問は次のとおりです。
このエラーメッセージが表示される理由と、プログラムをコンパイルする方法を誰かが理解するのを手伝ってもらえますか?

別のシリアルライブラリの提案も歓迎します。ただし、クロスプラットフォームである必要があります。

MinGW 4.7.1(32ビット)でコンパイルしているWindows7x64を実行しています。

4

2 に答える 2

4

ブーストの例から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));

そして、コンパイルエラーはなくなりました

于 2012-08-31T16:40:10.303 に答える
0

これらのあいまいさを修正するには、Eclipse に追加されたコンパイル エラーをオフにする必要があることがわかりました。

プロジェクト プロパティ -> C/C++ 一般 -> コード分析。

オンにするUse project settings

次に、関連する Eclipse エラーを無効にします。あいまいさ。

于 2014-08-06T06:04:22.003 に答える