2

NDK (Android 用) でブースト ファイルシステムを使用するコードをビルドしようとしています。

ファイルシステム以外はすべて問題ありません。

libs/filesystem/src/path.cpp:911: error: undefined reference to 'std::locale::locale(char const*)'
libs/filesystem/src/path.cpp:911: error: undefined reference to 'std::locale::locale(char const*)'
libs/filesystem/src/path.cpp:911: error: undefined reference to 'std::locale::locale(char const*)'
libs/filesystem/src/path.cpp:911: error: undefined reference to 'std::locale::locale(char const*)'

コードの 911 行:

static std::locale posix_lazy_initialization(path::imbue(std::locale("")));

これを修正する方法はありますか?


STL のバージョンを から: に変更gnustl_staticすると、gnustl_shared問題はなくなりました。どうなり得るか?

4

1 に答える 1

3

ライン 906/907 には、MACRO があります。

#if defined(BOOST_POSIX_API) && \
    !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))

ANDROIDの例外を含めるように変更しました

#if defined(BOOST_POSIX_API) && \
    !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) || defined(ANDROID))

私のコードはロケールに依存していませんが...

この質問を Android Developers Google Group に相互投稿したので、静的リンクではなく動的リンクが機能する理由について決定的な回答が得られるかもしれません。気になるニュースを掲載していきます。...

于 2013-04-11T23:38:15.343 に答える