저는 debian/amd64에 있는데 NDK-7b를 사용하여 안드로이드 2.2 용 GMP를 크로스 컴파일하고 싶습니다. [gmplib] (hg clone http://gmplib.org:8000/gmp-5.0 gmp)에서 소스 코드를 가져 왔습니다.android GMP cross compilation
SUBDIRS = tests mpn mpz mpq mpf printf scanf cxx mpbsd demos tune
그것은 것 : 메이크 파일에 다음과 같이 나는 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")
하지만 "확인"을 실행하면 링커가 손실 된 것처럼 보입니다.
/../../../../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, 편집 방법을 정확히 알아 냈습니까? 안드로이드 용 GMP도 컴파일하려고하지만 성공하지 못했습니다. 귀하의 절차가 무엇인지 기억합니까? –
@NicoBellic : 아니요. 아마도 최신 NDK로 운이 좋을 것입니다. –