2016-03-21 4 views
4

未定義の参照:: CreateSessionDescription(STD :: __ ndk1 ::のbasic_string、STD :: __ ndk1 ::アロケータ> constの&、STD :: __ ndk1 :: basic_string、std :: __ ndk1 :: allocator> const &、webrtc :: SdpParseError *) 'エラー未定義の参照:: __更新NDKの改正後ndk1のWebRTC「に11

Androidのndkリビジョン11を更新した後、いくつかの問題が発生します。 上記のためにプロジェクトをビルドできませんでした。

Androidデベロッパーで、 'libC++のインラインネームスペースをstd :: __ ndk1に変更して、プラットフォームのlibC++でのODRの問題を防ぐことができました。'が見つかりました。

どうすれば修正できますか?

私を助けてくれてありがとう。

答えて

0

私のやり方は多かれ少なかれトリッキーだと思いますが、うまくいきます。 /ndk-root-path // sources/cxx-stl/llvm-libC++/libcxx/includeに入ったので、 '__config'という名前のファイルがあります。それを開き、 '_LIBCPP_BEGIN_NAMESPACE_STD'ですべての行を見つけてください。これはインラインネームスペース '__ndk1'が追加された場所です。したがって、次のようなインラインネームスペースをすべてコメントアウトするだけです。

352 #define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {//inline namespace _LIBCPP_NAMESPACE { 
    353 #define _LIBCPP_END_NAMESPACE_STD } //} 
    354 #define _VSTD std//::_LIBCPP_NAMESPACE 

    356 namespace std { 
    // inline namespace _LIBCPP_NAMESPACE { 
    // } 
    } 

これらのコードは4つまたは5つあります。コメントの後、あなたはあなたのndkプロジェクトを再構築することができます、それは動作するはずです。

+0

llvmのlibC++をr10でビルドした場合、これはうまくいくと思います – Antonio

関連する問題