これはここで奇妙な設定です。GCC 4.7 でカスタム NDK をコンパイルしました (Debian armhf chroot ホスト用)。テストでは、Android で通常の c および c++ バイナリを完全にコンパイルして実行します。以下を使用して C++ でテスト共有ライブラリをコンパイルしようとする場合:
arm-linux-androideabi-g++ -fPIC -shared test.cpp -lstdc++ -o test.so
多数のリンカ エラーが発生し_staticinitialization_destruction
、_dso_handle
参照されていません。
ディレクトリの下の lib フォルダーにと の両方がlibstdc++.a
あります。何が起こっている?Android C++ スタンドアロンのコンパイルに関する情報はほとんどありません。libstdc++.so
arm-linux-androideabi
編集 GNU STL の iostream 部分では __dso_handle が定義されていないようです。2005年のLinux投稿から答えを見つけました。2012年の問題はまだあるようです:O笑。