Я пытаюсь запустить configure, говоря ему использовать кросс-компилятор (тот, который предоставляется Android NDK), но он не может его найти. Я сделал следующее (обратите внимание, рут Android NDK находится в /prod/ndk/
):
(внутри папки, которую я хочу скомпилировать, которая находится в /prod/workspace/jni/gmp/
):
./configure \
--host=arm-linux-androideabi \
CC=arm-linux-androideabi-gcc \
LD=arm-linux-androideabi-ld \
CPPFLAGS="-I/prod/ndk/platforms/android-8/usr/include/" \
CFLAGS="-nostdlib" \
LDFLAGS="-Wl,-rpath-link=/prod/ndk/platforms/android-8/arch-arm/usr/lib/
-L/prod/ndk/platforms/android-8/arch-arm/usr/lib" \
LIBS="-lc"
Но я получаю следующую ошибку:
checking build system type... x86_64-unknown-linux-gnu
checking host system type... arm-unknown-linux-androideabi
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-linux-androideabi-strip... arm-linux-androideabi-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking ABI=standard
checking whether arm-linux-androideabi-gcc is gcc... yes
checking compiler arm-linux-androideabi-gcc -nostdlib
-I/prod/ndk/platforms/android-8/usr/include/... no, double -> ulong conversion
configure: error: could not find a working compiler, see config.log for
details
Любая помощь? PS: я включил /prod/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/
в моем PATH
переменная.
Я не уверен в этом, но я бы сказал, что эта строка:
checking ABI=standard
вероятно означает, что configure
не пытается собрать для архитектуры ARM, но для рабочего стола … поэтому, когда вы пытаетесь запустить его, он пытается собрать для рабочего стола с помощью компилятора Android и находит, что этот компилятор не работает.
Попробуйте добавить:
--host=arm-linux-androideabi
Посмотрим, работает ли это.
Вы, наверное, уже поняли это, но на случай, если вы … или кто-то еще (например, я) … столкнетесь с этим вопросом, есть несколько вещей, которые вы должны посмотреть и / или сделать