iOS プロジェクト用にSwiftenライブラリをコンパイルできましたが、 Boostライブラリに関連するリンク エラーが発生しています。
これらの手順Boost
に従ってコンパイルしました。リンク中に発生するエラーは次のとおりです。
Undefined symbols for architecture arm64:
"vtable for boost::filesystem::detail::utf8_codecvt_facet", referenced from:
__GLOBAL__I_a in boost(path.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
いくつかのコンパイルパラメーターを含めることを提案する記事をいくつか読みましたが、どのパラメーターまたはどこに配置すればよいかわかりません。私も解決策なしでこのスレッドにたどり着きました。他の誰かがこの問題に直面しましたか? Swiften for iOS のコンパイルと実行に成功した人はいますか? 正しい方向へのヒントは大歓迎です。
更新 1
ライブラリはオブジェクトを共有しているようfilesystem
で、ビルド中に一方が他方をオーバーライドしていました。最後に、ライブラリ全体をコンパイルすることができましたが、それを使用しようとすると、さらにリンクエラーが発生します:(メインクラスでオブジェクトを宣言すると、このエラーが発生します:program_options
utf8_codecvt_facet
boost
Swiften
JID
Undefined symbols for architecture armv7:
"Swift::StringPrep::getPrepared(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&,
Swift::StringPrep::Profile)", referenced from:
Swift::JID::nameprepAndSetComponents(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const&, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&) in JID.o