У меня была точно такая же проблема, как описано dancsi при попытке скомпилировать мои собственные цепочки инструментов кросс-компиляции для Android (я хотел создать 32-битный вариант из них, поэтому ямне не нужно покупать 64-битный ПК или делать вещи для Android в виртуальной машине).
Я использую источники цепочки инструментов из официального репозитория цепочки инструментов AOSP:
repo init -u https://android.googlesource.com/toolchain/manifest
Решение состоит в том, чтобы использовать следующие 2 дополнительных параметра конфигурации: - with-headers и - with-libs .Я получил это решение, прочитав следующий файл: [android-toolchain-repo] / build / README:
Другой способ - указать заголовки и библиотеки с помощью --with-headers и- с библиотекой отдельно.Если вы настроите свое дерево с префиксом.Заголовки и библиотеки будут скопированы в каталог установки, указанный в префиксе.
Для значений этих 2 дополнительных параметров я использовал [android-src-repo] / prebuilts / ndk / 8 / платформы/ android-14 / arch-arm / usr / lib и [android-src-repo] / prebuilts / ndk / 8 / платформы / android-14 / arch-arm / usr / include.[android-src-repo] относится к моей проверке репо базовых источников AOSP (в моем случае я нахожусь на ветке android-4.2.2_r1 этого).
Конечный результат двух конфигурацийМне нужны следующие операторы:
./configure --target=arm-eabi --host=i686-linux-gnu --build=i686-linux-gnu --disable-gold \
--with-gcc-version=4.6 --with-binutils-version=2.21 --with-gmp-version=4.2.4 --with-mpfr-version=2.4.1 \
--with-gdb-version=7.3.x --with-gold-version=2.21 --prefix=/tmp/toolchain --disable-multilib \
--with-libs=/home/boeboe/android-src/prebuilts/ndk/8/platforms/android-14/arch-arm/usr/lib \
--with-headers=/home/boeboe/android-src/prebuilts/ndk/8/platforms/android-14/arch-arm/usr/include \
--program-transform-name='s&^&arm-eabi-&' --with-arch=armv5te --disable-option-checking
./configure --target=arm-linux-androideabi --host=i686-linux-gnu --build=i686-linux-gnu --enable-gold \
--with-gcc-version=4.6 --with-binutils-version=2.21 --with-gmp-version=4.2.4 --with-mpfr-version=2.4.1 \
--with-gdb-version=7.3.x --with-gold-version=2.21 --prefix=/tmp/toolchain \
--with-libs=/home/boeboe/android-src/prebuilts/ndk/8/platforms/android-14/arch-arm/usr/lib \
--with-headers=/home/boeboe/android-src/prebuilts/ndk/8/platforms/android-14/arch-arm/usr/include \
--program-transform-name='s&^&arm-linux-androideabi-&' --disable-option-checking
Обратите внимание на дополнительный - параметр отключения-опции-проверки , который был необходим для настройки, чтобы принять все аргументы!
Этодлинный список аргументов был составлен путем проверки исходных аргументов конфигурации, передаваемых для 64-битной версии набора инструментов gcc 4.6.Это можно проверить в файлах SOURCES, доступных в [android-src-repo] /prebuilts/gcc/linux-x86/arm/arm-eabi-4.6 и [android-src-repo] / prebuilts / gcc / linux-x86 /рука / рука-Linux-androideabi-4.6.
В этих же файлах можно найти теги git, поэтому я также извлекаю эти конкретные версии в моем [android-toolchain-repo].Для дополнительных модулей, необходимых gcc, таких как gmp / mpfr / gdb ..., я извлек правильные версии tar-шаров, доступных в [android-toolchain-repo] / gmp | mpfr | gdb.Это был самый простой способ, который я смог выяснить, так как мой исходный оператор конфигурации мог подобрать эти модули.
Тот же метод, который описан выше, также позволил мне скомпилировать 32-битный вариант последней версии gcc 4.7.цепочка инструментов (в настоящее время используется в главном филиале AOSP).Параметры конфигурации в этом случае, конечно, были другими.