3

boost::filesystem の関数を使用して、現在の作業ディレクトリを変更しようとしています (必要に応じて作成します)。リンク エラーが発生します。

SBDir.cpp:(.text+0x23): undefined reference to `boost::system::generic_category()'
SBDir.cpp:(.text+0x2f): undefined reference to `boost::system::generic_category()'
SBDir.cpp:(.text+0x3b): undefined reference to `boost::system::system_category()'

しかし、ブーストライブラリに対してリンクしていますか??!? 私は以下を使用します:

-lboost_system -lboost_system-mt -lboost_filesystem -lboost_filesystem-mt

そして、私はそれがそれらを見つけることができることを知ってい-Wl, -tます:

-lboost_system (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_system.so)
-lboost_system-mt (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_system-mt.so)
-lboost_filesystem (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_filesystem.so)
-lboost_filesystem-mt (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_filesystem-mt.so)

FWIW: gcc を使用してUbuntu 4.4.3-4ubuntu54.4.3います。

4

2 に答える 2

2

Boost 1.46(Ubuntu 11.10の標準)でも同じエラーメッセージが表示され、11.04では不要だった-lboost_systemを追加して1.42をブーストする必要がありました。それはあなたの質問に答えませんが、エラーメッセージをグーグルで検索することによってここに連れてこられた他の人にとっておそらく興味深いものです。

于 2012-01-12T21:17:03.043 に答える
1

そのため、何がうまくいかなかったのか理解できませんでした。そこで、Ubuntu Boostパッケージをアンインストールして、最初からビルドしてみました。1.45.0にアップグレードし、すべてがリンクするようになりました。これがバージョン固有の問題であったかどうかはわかりませんが、後で詳しく知る場合は、戻って更新します。

于 2011-02-10T16:50:00.220 に答える