3

ブースト v.1.51.0 をインストールしました。ディレクトリ「boost_1_51_0」は「/home/user1/boost/」の下にあります。インストールするには、「/home/user1/boost/」にある tar ファイルを解凍するだけです。MinGW で C++ コンパイラを使用しています。

今、私はコードにライブラリを含めようとしています。これまで私は試した

#include </home/user1/boost/boost_1_51_0/libs/unordered/test/objects/test.hpp>  
#include </home/user1/boost/boost_1_51_0/test.hpp>
#include </home/user1/boost/test.hpp>
#include <boost/test.hpp>

他のいくつかと一緒に。「/home/user1/boost/」のWindowsの場所をパスに追加してみました。

何かが足りない。

4

3 に答える 3

3

コマンドライン引数を使用して、インクルード ディレクトリをコンパイラに提供する必要があります-I/home/user1/boost/boost_1_51_0

システム ディレクトリに実際に boost をインストールすることもできます。詳細については、 http://www.boost.org/doc/libs/1_51_0/doc/html/bbv2/installation.htmlを参照してください。

于 2012-08-26T03:51:11.327 に答える
3

ドキュメントで指定されているインクルージョンを使用してくださいboost(通常、上記の例の行に沿って<boost/test.hpp>)。ただし、CPPPATH/ CXXFLAGS(ビルド環境) を適切に設定してください。についてMinGWは、 を追加し-I/home/user1/boost/boost_1_51_0/ます。

于 2012-08-26T03:51:44.663 に答える
3
#include </home/user1/boost/boost_1_51_0/libs/unordered/test/objects/test.hpp>  

これはうまくいきません。そのファイルは見つかるかもしれませんが<boost/config.hpp>、インクルード パスで見つからないような他のファイルをインクルードしようとします。

#include </home/user1/boost/boost_1_51_0/test.hpp>
                                         ^^^^^^^^

ファイルがその場所にないため、これは機能しません! 実行ls /home/user1/boost/boost_1_51_0/test.hppすると、そのファイルが存在しないため、エラーが発生します。

#include </home/user1/boost/test.hpp>
                            ^^^^^^^^

ここでも同じ問題。

とにかくディレクティブに絶対パスを入れるのは通常悪い考えな#includeので、上記の試みはすべて間違っています。代わりに、使用する目的でファイルを含める必要があります。

#include <boost/test.hpp>

これが機能するには、コンパイラにどこを見るかを伝える必要があるため、コンパイラが検索して検索し、それが意図したとおりに検索さ-I dirれるように、必要なインクルード パスを設定します。-I /home/user1/boost/boost_1_51_0/boost/test.hpp/home/user1/boost/boost_1_51_0//home/user1/boost/boost_1_51_0/boost/test.hppboost/config.hpp/home/user1/boost/boost_1_51_0/boost/config.hpp

ただし、これで見つかります/home/user1/boost/boost_1_51_0/boost.test.hppが、Boost.Undordered 単体テストの 1 つで使用されるヘッダーを含めたいようです...なぜそれが必要だと思うのかわかりません。通常、Boost ヘッダーのみを含める必要がありますboostlibs

于 2012-08-26T14:34:22.920 に答える