2013-06-07 2 views
0

Я пытаюсь запустить configure, говоря ему, чтобы использовать кросс-компилятор (тот, который предоставляется Android NDK), но он не может его найти. Я сделал следующее (обратите внимание, корень Android NDK находится в /prod/ndk/):Configure не может найти рабочий компилятор

(внутри папки Я хочу, чтобы скомпилировать, который находится в /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 переменную.

+0

Любопытно: почему вы хотите перекрестно скомпилировать? – Raptor

+0

@ShivanRaptor Я пытаюсь настроить GMP для использования на Android. На самом деле у меня есть несколько библиотек, которые мне нужно переносить на Android. – shblsh

ответ

0

Я не уверен в этом, но я бы сказал, что эта линия:

checking ABI=standard 

, вероятно, означает, что configure не пытается построить для ARM архитектуры, но и для рабочего стола ... так что, когда вы пытаетесь чтобы запустить его, он пытается построить для настольных компьютеров с помощью компилятора Android и считает, что этот компилятор не работает.

Попробуйте добавить:

--host=arm-linux-androideabi 

ГЭЭ, если он работает.

0

Возможно, вы уже поняли это, но на всякий случай вы ... или кто-то еще (как и я) ... сталкивается с этим вопросом, есть несколько вещей, которые вы должны посмотреть и/или сделать

  1. Используйте make-standalone-toolchain.sh в каталоге $ NDKROOT/build/tools, чтобы сделать отдельную инструментальную цепочку, ориентированную на платформу, для которой вы хотите разработать. Это проще, чем использование готовых наборов инструментов в NDK, и это рекомендуемый способ использования инструментальной цепочки.
  2. Проверьте конфигурацию. Он точно скажет вам, где именно произошла ошибка. Если вы посмотрите на это место, вы поймете, что: a) что вызвало ошибку, и b) что можно исправить.
Смежные вопросы