2011-07-20 10 views
0

私はBoost 1_47の最新バージョンを利用してクライアントアプリケーション(C++、Windows XP)をコンパイルするためにMinGW 4.5.1を使用しています。コンパイルエラー(boost::asio::signal_setは型を定義していません)を受け取り、関連するsignal_setヘッダーのどちらかを明示的にインクルードしようとすると、コンパイルエラーが発生することがあります。ファイルが存在しないという苦情が見つかることがあります。私は問題なしでディレクトリツリーの同じレベル内にファイルを含めようとしましたが、signal_set.hppファイルにハングアップしているように見えます(インクルードとしてasio.hppというフルヘッダーを使用しても不満はありません)。 boost 1_46_1を使用しようとしたときも同じ動作になります。boost :: asio :: signal_setを利用しようとするとコンパイルできません

誰でも何が起こっているかについての洞察はありますか?

+1

私たちが試すことができるように問題を再現するコードを投稿してください。私は私のMacで1.47のブーストからAsioを使用しても問題はありません。 –

+0

調査の結果、問題を再現するためのコードスニペットを作成する際にEclipseワークスペースを使用したことを誤って指摘していました。私はこれが他のところに影響を与えなかったことに驚いていますが、今はうまくいくように見えます。私は間接的にサムのおかげで助けてくれたようです。 CTC – user854256

+0

あなた自身の質問への回答を投稿してください。そうすれば、この問題を探している他のユーザーは解決策を知ることができます。 –

答えて

2

問題は、自分が思っていたように、私がブーストヘッダーを正しく含んでいないことでした。通常、私は、ハードドライブ上のいくつかのディレクトリ、例えばC:\ Boost \ some_boost_versionにブーストインストールを持っています。 C:\ Boost \ boost-1_47 \ boostの新しく追加されたバージョンのインクルードを指していると思っていたのに対し、\ boostのためのディレクトリツリー内にはレベルがなく、すべてがC:\ Boost \ boost-1_47でした。新しいディレクトリ(C:\ Boost \ boost-1_47 \ boostを作成したもの)を追加し、その中にインクルードを入れることで、私の問題は解決されました。マシン上のブーストライブラリをビルドするためのビルドスクリプトを再調整したときに見逃したことがあります。

関連する問題