私はdebian/amd64上にあり、NDK-7bを使ってアンドロイド2.2用のGMPをクロスコンパイルしたいと思います。私は[gmplib](hgクローンhttp://gmplib.org:8000/gmp-5.0 gmp)からソースコードを取得しました。android GMPクロスコンパイル
SUBDIRS = tests mpn mpz mpq mpf printf scanf cxx mpbsd demos tune
それが思わ:Makefileで以下のように私はSUBDIRSパラメータを更新
/* Define to 1 if you have the `obstack_vprintf' function. */
#ifndef ANDROID
#define HAVE_OBSTACK_VPRINTF 1
#endif
/* Define to 1 if you have the `localeconv' function. */
#ifndef ANDROID
#define HAVE_LOCALECONV 1
#endif
/* Define to 1 if you have the `vsnprintf' function and it works properly. */
#ifndef ANDROID
#define HAVE_VSNPRINTF 1
#endif
:私は設定して、ファイルconfig.hのを修正
./configure --enable-shared --host=arm-linux-androideabi --prefix=/home/fabien/android/spica/ndk-standalone-8 CFLAGS="-v -march=armv5te -mtune=xscale -msoft-float -Wl,-rpath,lib/ -DANDROID -ffunction-sections -funwind-tables -fstack-protector -funswitch-loops -finline-limit=300 -Wall -O3 -nodefaultlibs -fPIC -shared -Wl,--no-allow-shlib-undefined" PKG_CONFIG_PATH="/home/fabien/android/spica/ndk-standalone-8/lib/pkgconfig" LDFLAGS="-Wl,-rpath-link -Wl,/home/fabien/android/spica/ndk-standalone-8/lib -L/home/fabien/android/spica/ndk-standalone-8/lib"
: は、私はそれを構成しmakeを実行するとコンパイルされます:
libtool: link: (cd ".libs" && rm -f "libgmp.so" && ln -s "libgmp.so.10.0.5" "libgmp.so")
libtool: link: (cd ".libs" && rm -f "libgmp.la" && ln -s "../libgmp.la" "libgmp.la")
しかし、 "make check"を実行すると、リンカーが失われているように見えます。
/../../../../arm-linux-androideabi/bin/ld: warning: ld-linux.so.3, needed by /home/fabien/android/spica/sources/gmp/.libs/libgmp.so, not found (try using -rpath or -rpath-link)
t-bswap.o:(.ARM.exidx.text.main+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
./.libs/libtests.a(misc.o):(.ARM.exidx.text.align_pointer+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
.
.
.
refmpn.c:(.text.refmpn_get_str+0xb8): undefined reference to `__aeabi_uidiv'
refmpn.c:(.text.refmpn_get_str+0x238): undefined reference to `__aeabi_ui2d'
refmpn.c:(.text.refmpn_get_str+0x250): undefined reference to `__aeabi_dmul'
refmpn.c:(.text.refmpn_get_str+0x254): undefined reference to `__aeabi_d2uiz'
./.libs/libtests.a(refmpn.o):(.ARM.exidx.text.refmpn_get_str+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
/home/fabien/android/spica/sources/gmp/.libs/libgmp.so: undefined reference to `[email protected]_2.4'
/home/fabien/android/spica/sources/gmp/.libs/libgmp.so: undefined reference to `[email protected]_2.4'
ヒント?
Fabien R、コンパイルの仕方を正確に把握しましたか?私はAndroid用のGMPもコンパイルしようとしていますが、成功することはありません。あなたの手続きは何かを覚えていますか? –
@NicoBellic:いいえ、最新のNDKで幸運にも幸せになるでしょう。 –