2

私はしばらくの間 Windows でブーストを使用してきましたが、デモンストレーションのためにいくつかの既存のアプリを Ubuntu 12 ボックスで実行するように移行する必要があります。このアプリは 2 つのワーカー スレッドを作成します。1 つは着信 UDP データをログに記録するためのもので、もう 1 つは別のポートをリッスンしてそのデータを画面に出力するためのものです。

他のすべてが機能するようになりましたが、何らかの理由で次の行が「Boost::asio::io_service::run の無効なオーバーロード」というエラーで失敗しています。

m_logThread = new boost::thread( boost::bind( &boost::asio::io_service::run, m_ioServicePtr ));

この行は Win32 マシンでは問題なく動作しますが、Linux では無効な過負荷エラーが発生します。

他にも 2 つのエラーがあります。

boost::bind is ambiguous

type boost::thread could not be resolved

しかし、それらは他のエラーに起因していると確信しています。コンパイラは私のクラスがメンバー変数としてIOサービスとスレッドへのポインタを持っていることについて不平を言っていないので、私は間違いなくブーストヘッダーを含めています.

ヘッダーの場所に完全に満足しているため、ブーストが正しくインストールされていると思います。

よろしくお願いします。

4

1 に答える 1

3

エラーは、boost::asio::io_service::runオーバーロードされていることです。この場合、あいまいさを解決する必要があります。

于 2012-09-25T06:14:58.613 に答える