私は古いバージョンのOpenOfficeをコンパイル/移植しようとしています。これは、ソースツリーの一部であるBoost v1.34.1を使用します。エラーメッセージは次のとおりです。ブーストシンボルが見つかりません
Undefined symbols:
"boost::throw_exception(std::exception const&)", referenced from:
boost::detail::shared_count::shared_count<ScToken>(ScToken*)in detfunc.o
ld: symbol(s) not found
ブーストは私には新しく、これを理解するのに役立つ多くのオンラインを見つけることができませんでした。エラーメッセージから、私はおそらくライブラリをリンクする必要があることを理解しています。しかし、boost::throw_exception
はヘッダファイルに定義されています(私が見つけることができる)。ちょうどキックのために、私は#include <boost/throw_exception.hpp>
をdetfuncで試し、シンボリックリンクを使ってヘッダファイルを同じディレクトリに置いてください。
ライブラリは-l
またはインクルードパス-I
でリンクする必要がありますか?そのシンボルはどのようにして取得するのですか?
ありがとうございます!私は最終的に 'throw_exception.hpp'を読んで、あなたが答えたものを正確に発見しました。私は、コンパイラフラグの 'boost/config/compiler /'について認識していませんでしたが、確かに 'BOOST_NO_EXCEPTIONS'が定義されていました。 – Jerry