11

Boost チュートリアルを実行しようとしましたが、ファイルシステム ライブラリのリンクで行き詰まりました。

Ubuntu 12.10 を使用しています。取り付けはそんなに難しくなかった

sudo apt-get install libboost-all-dev

これにより、すべてのヘッダーが /usr/local/include に配置され、コンパイルされたソースが /usr/lib/
[--headers]
[--binaries]に配置されます。

このプログラム [--program] を書きました。コンパイルしようとしたところ

 g++ -g tut1.cpp -o tut1 -lboost_system -lboost_filesystem

次のエラーが発生しました: [--errors]。 http://www.boost.org/doc/libs/1_53_0/more/getting_started/unix-variants.html
で少し検索した後、これを試しました:

g++ -g -I /usr/local/include/boost/ tut1.cpp -o tut1 -L /usr/lib/libboost_filesystem.a -lboost_system -lboost_filesystem 

しかし、運がありませんでした。同じエラーがありました。

投稿に 2 つ以上のリンクを配置することはできないため、ここにすべてのリンクを示します
http://pastebin.com/DakVFn12

4

2 に答える 2

10

ここで答えを見つけました:
http://www.richelbilderbeek.nl/CppLinkErrorUndefinedReferenceToBoostFilesystemDetailGet_current_path_api.htm
バイナリは /usr/lib ではなく /usr/local/lib にあったようです。
したがって、コンパイルの正しいコマンドは次のようになります。

g++ -g tut1.cpp -o tut1 -L/usr/local/lib/ -lboost_filesystem

@ゆうし、それは1つの問題でした。

于 2013-06-20T19:48:15.663 に答える
4

コマンドは-L、特定のライブラリへのパスではなく、ライブラリが含まれているベース パスである必要があります。-L /usr/lib/代わりに試してみてください。

于 2013-06-20T06:50:00.040 に答える