0

ブーストが適切にインストールされていると思うので、ここにあるテスト「first.cpp」を使用しようとしています:

#include<iostream>
#include<boost/any.hpp>

int main()
{
    boost::any a(5);
    a = 7.67;
    std::cout<<boost::any_cast<double>(a)<<std::endl;
}

そして、私は次のようになります:

Jason@ITHAKA-DB44CFE1 /home/jason
$ g++ -o first first.cpp
first.cpp:2:24: boost/any.hpp: No such file or directory
first.cpp: In function `int main()':
first.cpp:6: error: `boost' has not been declared
first.cpp:6: error: `any' undeclared (first use this function)
first.cpp:6: error: (Each undeclared identifier is reported only once for each
unction it appears in.)
first.cpp:6: error: expected `;' before "a"
first.cpp:7: error: `a' undeclared (first use this function)
first.cpp:8: error: `boost' has not been declared
first.cpp:8: error: `any_cast' undeclared (first use this function)
first.cpp:8: error: expected primary-expression before "double"
first.cpp:8: error: expected `;' before "double"
first.cpp:9:2: warning: no newline at end of file

Jason@ITHAKA-DB44CFE1 /home/jason
$

ブースト ライブラリが ./home/Jason/ にある場所

明らかに何かが起きています。また、すべてのブースト ライブラリ自体がこの「boost/...」を使用するため、何らかの理由で次のいずれかになります。

1 - Boost で何か間違ったことをした 2 - C++/gcc がブーストを認識していない

入力はありますか?

4

2 に答える 2

2

ライブラリは標準パスにインストールされていないため、に渡す必要があり-I/home/Jason/includegccおそらく aも渡す必要があります。-L/home/Jason/lib試す:

 g++ -I/home/Jason/include -L/home/Jason/lib -o first first.cpp

また、一度コンパイルすると、ライブラリが再び標準パスにないため、正しく実行されません。/home/Jason/lib実行するには、環境変数に追加する必要がありますLD_LIBRARY_PATH

編集:Tony Dが指摘したように、代わりにに設定できCPLUS_INCLUDE_PATHます/home/Jason/include。これは、私が提供したコンパイラオプションと同等です。

編集

インストールをテストするだけの場合は、スクリプトを実行できます(インストール時に有効にしたと~/bin/Boost.Test仮定します)。--with-libraries=testそれ以外の場合は、hour home にディレクトリがあるはずbinです (プレフィックスとして使用した場合)。その中に名前が含まれているものがあれば、Boostそれを実行してみてください (ただし、前に設定することを忘れないでくださいLD_LIBRARY_PATH)。

于 2013-04-23T02:07:40.210 に答える
-1
  • ヘッダー ファイルは「/usr/include」にリンクします

$ cd /usr/include
$ sudo ln -s /usr/local/boost_xxxx/boost boost

  • ブースト ライブラリをコンパイルし、so ファイルを「/usr/lib」にコピーします。

$ sudo cp /usr/local/lib/libboost_regex-gcc41-mt-xxxx.so.xxxx /usr/lib/

于 2013-04-23T02:16:32.993 に答える