この製品には複数のソースパッケージが含まれています。ソースパッケージの中には、autotool/confを使用してビルドされているものがあります。NDK12b:スタンドアロンのツールチェーンと同じビルドスクリプトを使用したclangとgccの異なるELF
GoogleがNDK-13からNDKのデフォルトコンパイラとしてclangに切り替えると述べたところに基づいて、私たちは* .mkファイルのスイッチとenvのセットアップとビルドのスクリプトに進みました。ファイルを変更する場所はありません。
古いNDK-10dを使用していたので、NDK-12bに切り替えました。 Androidのドキュメントで推奨されているように、ビルドスクリプトを簡素化して全面的に標準化するために、スタンドアロンのツールチェーンも生成しました。
私が直面している問題は、ネイティブコードがロードされるとすぐに起動時のクラッシュです。私が気づいたのは、logcatに関する警告です。unused DT entry: type 0x6ffffffe
(VERNEED)と0x6fffffff
(VERNEEDNUM)です。
次に、恐怖症:A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x30 in tid 22246
。
スタックトレースは非常に、非常に少ない私に語った:readelf -d
によってダンプされたようELFs内のデータを比較することアーム-Linuxが生成されたバイナリのもの2つのDTエントリが存在しないことを示していること
08-11 15:31:02.421 128-128/? I/DEBUG: #00 pc 00036b8c /system/lib/libc.so
08-11 15:31:02.421 128-128/? I/DEBUG: #01 pc 0003817b /system/lib/libc.so (vfprintf+18)
08-11 15:31:02.421 128-128/? I/DEBUG: #02 pc 00035251 /system/lib/libc.so (fprintf+12)
08-11 15:31:02.421 128-128/? I/DEBUG: #03 pc 000015fd /data/app/com.myapp.demo-1/lib/arm/libappdebug.so (pipe_listen+328)
08-11 15:31:02.421 128-128/? I/DEBUG: #04 pc 0001659b /system/lib/libc.so
08-11 15:31:02.421 128-128/? I/DEBUG: #05 pc 000144c3 /system/lib/libc.so
お知らせ-androideabi-gcc-4.9 builds。
アイデア、ポインター、...何でも...非常に高く評価されています。私は今、(赤面の)3日間に固執しています。
ありがとうございました。
2つのバージョンの 'readelf -d'の出力の違いを表示しておけば助けになりました... – not2qubit