私は新しいAndroidのNDK r7のリリースを使用して、Android用libSDLのこのポートを構築しようとしている:は-lgnustl_static見つけることができません。コンパイルアンドロイドSDLポートをNDK R7と
https://github.com/pelya/commandergenius
私は私がやっている知っていますある程度は「サポートされていません」ということがあります。私はcygwin &ウィンドウを使用していますが、これはREADMEに記載されていますが、もはやサポートされていません。つまり、私はシェルスクリプトをハックして、必要に応じて自分の問題を解決し、コンパイルしてもリンクさせないようにすることができます。
/cygdrive/c/and/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-ar crs obj/local/armeabi/libflac.a ./obj/local/armeabi/objs-debug/flac/src/ogg_decoder_aspect.o ./obj/local/armeabi/objs-debug/flac/src/md5.o ./obj/local/armeabi/objs-debug/flac/src/stream_decoder.o ./obj/local/armeabi/objs-debug/flac/src/fixed.o ./obj/local/armeabi/objs-debug/flac/src/memory.o ./obj/local/armeabi/objs-debug/flac/src/stream_encoder.o ./obj/local/armeabi/objs-debug/flac/src/window.o ./obj/local/armeabi/objs-debug/flac/src/cpu.o ./obj/local/armeabi/objs-debug/flac/src/ogg_encoder_aspect.o ./obj/local/armeabi/objs-debug/flac/src/lpc.o ./obj/local/armeabi/objs-debug/flac/src/float.o ./obj/local/armeabi/objs-debug/flac/src/bitmath.o ./obj/local/armeabi/objs-debug/flac/src/metadata_object.o ./obj/local/armeabi/objs-debug/flac/src/ogg_helper.o ./obj/local/armeabi/objs-debug/flac/src/metadata_iterators.o ./obj/local/armeabi/objs-debug/flac/src/bitreader.o ./obj/local/armeabi/objs-debug/flac/src/bitwriter.o ./obj/local/armeabi/objs-debug/flac/src/stream_encoder_framing.o ./obj/local/armeabi/objs-debug/flac/src/crc.o ./obj/local/armeabi/objs-debug/flac/src/format.o ./obj/local/armeabi/objs-debug/flac/src/ogg_mapping.o
C:/and/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld.exe: cannot find -lgnustl_static
collect2: ld returned 1 exit status
/cygdrive/c/and/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-ar crs obj/local/armeabi-v7a/libflac.a ./obj/local/armeabi-v7a/objs-debug/flac/src/ogg_decoder_aspect.o ./obj/local/armeabi-v7a/objs-debug/flac/src/md5.o ./obj/local/armeabi-v7a/objs-debug/flac/src/stream_decoder.o ./obj/local/armeabi-v7a/objs-debug/flac/src/fixed.o ./obj/local/armeabi-v7a/objs-debug/flac/src/memory.o ./obj/local/armeabi-v7a/objs-debug/flac/src/stream_encoder.o ./obj/local/armeabi-v7a/objs-debug/flac/src/window.o ./obj/local/armeabi-v7a/objs-debug/flac/src/cpu.o ./obj/local/armeabi-v7a/objs-debug/flac/src/ogg_encoder_aspect.o ./obj/local/armeabi-v7a/objs-debug/flac/src/lpc.o ./obj/local/armeabi-v7a/objs-debug/flac/src/float.o ./obj/local/armeabi-v7a/objs-debug/flac/src/bitmath.o ./obj/local/armeabi-v7a/objs-debug/flac/src/metadata_object.o ./obj/local/armeabi-v7a/objs-debug/flac/src/ogg_helper.o ./obj/local/armeabi-v7a/objs-debug/flac/src/metadata_iterators.o ./obj/local/armeabi-v7a/objs-debug/flac/src/bitreader.o ./obj/local/armeabi-v7a/objs-debug/flac/src/bitwriter.o ./obj/local/armeabi-v7a/objs-debug/flac/src/stream_encoder_framing.o ./obj/local/armeabi-v7a/objs-debug/flac/src/crc.o ./obj/local/armeabi-v7a/objs-debug/flac/src/format.o ./obj/local/armeabi-v7a/objs-debug/flac/src/ogg_mapping.o
C:/and/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld.exe: cannot find -lgnustl_static
collect2: ld returned 1 exit status
該当箇所を、テキストのその壁を解析できない場合:
ld.exe: cannot find -lgnustl_static
をだから、とにかく、私は(大ブロックのため申し訳ありませんが、関連する部分は、以下のトリミング)、連結までの作業をコンパイルしている
私はWindowsのNDKのリリースを見れば今、私はここにgnustl_ *ファイルを検索:./android-ndk-r7/sources下
:
./cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_shared.so
./cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_static.a
./cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_shared.so
./cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_static.a
./cxx-stl/gnu-libstdc++/libs/x86/libgnustl_shared.so
./cxx-stl/gnu-libstdc++/libs/x86/libgnustl_static.a
私はLinuxのアンドロイドNDKのディストリビューションも見ましたが、それらは同じパッケージになっています(ソースディレクトリの下にビルドされたlibgnustlファイルしかありません)。
は、だから私は3つの質問している:なぜ我々はそれが.A ファイルだときlibgnustl_staticリンクする-lを
- を使用することでしょうか?それは、オブジェクトファイル に.aファイルを含めるだけでなく、-lgnustl_shared?
- なぜこれらのファイルは「ソース」の下にあるのですか?私は彼らが "toolchains"ライブラリNDKディレクトリにいると期待していました。誰もlibgnustlとリンクする方法は?
- これらのファイルをリンカがどこから見えるのかコピーすることはできますか? -Lでディレクトリを追加するだけではうまくいかなかったし、適切なビルドターゲット(armeabi vs armeabi-v7 vs x86)にリンクする必要があります。
私は本当にそれがどのように働いているか知りたいです...それは私のためには機能しません。私はフォワードスラッシュから脱出しなければならなかったが、まだそれは見つからないと言います。 –
それは私がそれを働かせるためにした醜いハックだった。私が話していることを正確に実行しようとしていますか(pelyaのSDLをコンパイルしてください)? – gravitron
私はR7を使ってコードの全体をコンパイルしようとしています。私はちょうどNDK r6 crystax 2に戻った。 –