- [question] arm-linux-androideabi-gcc: not found | Error 127, Error 2, #1321
- Comments
- LovableFatty commented Jul 21, 2020
- LovableFatty commented Jul 21, 2020
- stephenhines commented Jul 21, 2020
- stephenhines commented Jul 21, 2020
- LovableFatty commented Jul 21, 2020 •
- DanAlbert commented Jul 21, 2020
- LovableFatty commented Jul 21, 2020
- LovableFatty commented Jul 21, 2020 •
- DanAlbert commented Jul 21, 2020
- stephenhines commented Jul 21, 2020
- Создание пакетов APK x86 и ARM APK с помощью компилятора Intel® и GNU gcc
- Подготовка среды сборки
- Сборка из командной строки
- Сборка в интегрированной среде разработки Eclipse
- Примечание о невыполнении очистки двоичных файлов в .\libs\[targetabi]
- Прочие статьи по теме и ресурсы
- Bambuser ffmpeg — «arm-linux-androideabi-gcc is unable to create an executable file.»
- 2 Answers 2
- Compiling ICU using arm-linux-androideabi-4.4.3
[question] arm-linux-androideabi-gcc: not found | Error 127, Error 2, #1321
Comments
LovableFatty commented Jul 21, 2020
Steps I followed:
make ARCH=arm goldfish_armv7_defconfig
make ARCH=arm menuconfig
check «enable loadable module support»
check «module unloading»
make ARCH=arm SUB_ARCH=arm CROSS_COMPILE=$/home/noah/Downloads/prebuilt-darwin/darwin-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-
The text was updated successfully, but these errors were encountered:
LovableFatty commented Jul 21, 2020
It states arm-linux-androideabi-gcc: not found but going into the file shows arm-linux-androideabi-gcc
stephenhines commented Jul 21, 2020
It looks like you’re trying to build the Linux kernel with some NDK prebuilts that you have, but you really need to supply us with more information before we can help here. I’m also going to point out that you need to be building the Linux kernel with Clang instead of gcc, as we no longer provide support for gcc in the Android toolchain. @nickdesaulniers, can you post a sample command line for your suggested kernel build?
stephenhines commented Jul 21, 2020
Actually, I just spotted your bug. $/home/noah/Downloads/prebuilt-darwin/darwin-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi- in your command line should probably be $HOME/Downloads/. or just drop the $ from that part of your command line.
LovableFatty commented Jul 21, 2020 •
Actually, I just spotted your bug. $/home/noah/Downloads/prebuilt-darwin/darwin-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi- in your command line should probably be $HOME/Downloads/. or just drop the $ from that part of your command line.
Tried both solutions and didn’t work
DanAlbert commented Jul 21, 2020
The NDK doesn’t have GCC 4.4. The path you’re using isn’t pointing at a real directory.
LovableFatty commented Jul 21, 2020
The NDK doesn’t have GCC 4.4. The path you’re using isn’t pointing at a real directory.
Doesn’t this image showcase gcc 4.4.3? Also what do you mean by ‘The path you’re using isn’t pointing at a real directory.’ ?
LovableFatty commented Jul 21, 2020 •
building the Linux kernel with Clang
@stephenhines
After I build a linux kernel with clang how do I build an android LKM? that’s my end goal
DanAlbert commented Jul 21, 2020
That’s an extremely old NDK then.
stephenhines commented Jul 21, 2020
building the Linux kernel with Clang
@stephenhines
After I build a linux kernel with clang how do I build an android LKM? that’s my end goal
Источник
Создание пакетов APK x86 и ARM APK с помощью компилятора Intel® и GNU gcc
Существуют устройства Android на процессорах с архитектурами наборов инструкций (ISA) ARM или x86. Различные архитектуры наборов инструкций не имеют двоичной совместимости, поэтому приложение, содержащее нативный код, должно содержать нативные библиотеки для каждой архитектуры. Одним из механизмов распространения таких приложений являются так называемые «толстые» пакеты приложений Android («толстые» APK).
В этой статье содержатся пошаговые инструкции по созданию такого «толстого» пакета APK, включающего независимые от архитектуры файлы для виртуальной машины Dalvik (Dalvik, 2013), а также библиотеки для разных архитектур. В статье описывается сборка нативной библиотеки приложения x86 с помощью Intel Integrated Native Developer Experience (INDE).
Для демонстрации используем пример hello-jni из дистрибутива NDK r10 (входящий в состав установки Intel INDE).
Подготовка среды сборки
2) для program files (x86).
3. Создайте новую переменную среды:
JAVA_HOME=[jdk7-dir].
4. Установите:
пакет Intel Integrated Native Developer Experience должен быть установлен в [inde-dir].
5. Добавьте эту папку в переменную среды PATH:
каталог [ant-dir]\bin для использования средства ant (расположение [ant-dir] по умолчанию: [inde-dir]\IDEintegration)
Сборка из командной строки
В этом разделе содержатся инструкции по созданию пакетов APK для поддержки устройств Android с архитектурой ARM и x86 в среде сборки с командной строкой.
Откройте окно командной строки или окно терминала в Linux; перейдите в папку примеров Android NDK «hello-jni» [ndk-dir]\samples\hello-jni; выполните следующие действия.
Примечание. Все средства, перечисленные в разделе выше, должны быть доступны из этого окна.
1. Настройка приложения
Выполните следующую команду в папке hello-jni для создания файла build.xml, который будет впоследствии использован для сборки примера.
Примечание. —target android-19 соответствует версии Android 4.4 (KITKAT).
2. Очистка рабочей области приложения
Используйте следующую команду для очистки всей рабочей области, включая библиотеки, для всех архитектур ISA.
Примечание: V=1: печать всех команд по мере их выполнения. APP_ABI=all: принудительная очистка всех промежуточных файлов для всех целевых платформ. Если не указать этот параметр, будет очищен только файл для целевой платформы armeabi.
3. Сборка двоичных файлов для архитектуры ARM
Используйте указанную ниже команду для сборки двоичного файла приложения для архитектуры ARM:
Примечание: APP_ABI=armeabi-v7a: настройка компиляции для целевой платформы ARM. NDK_TOOLCHAIN=arm-linux-androideabi-4.8: вместо используемого по умолчанию GNU gcc 4.6, используется gcc 4.8.
Двоичный файл приложения (libhello-jni.so) создается по адресу .\libs\armeabi-v7a\libhello-jni.so.
4. Сборка двоичных файлов для архитектуры x86 с помощью компилятора Intel
Используйте указанную ниже команду для сборки двоичного файла приложения для архитектуры x86 с помощью компилятора Intel.
Примечание: APP_ABI=x86: настройка компиляции для архитектуры x86. NDK_TOOLCHAIN=x86-icc: замена используемого по умолчанию компилятора gcc 4.6 на компилятор Intel C/C++ для Android. NDK_APP.local.cleaned_binaries=true: отмена удаления библиотеки в каталоге libs/armeabi. См. примечания ниже.
Двоичный файл приложения (libhello-jni.so) создается по адресу .\libs\x86\libhello-jni.so.
5. Подготовка пакета приложения (APK)
После сборки всех двоичных файлов для каждой целевой платформы Android убедитесь, что папка libs\[targetabi] содержит требуемые библиотеки для каждой целевой архитектуры.
Чтобы упростить создание пакета и избежать его подписания, используйте следующую команду для создания отладочного пакета.
После этого новый пакет HelloJni-debug.zip появится в папке .\bin. Его можно запустить в имитаторах x86 или ARM, поддерживающих API уровня 19 или выше, содержащихся в Android SDK.
Пакет HelloJni-debug.zip содержит библиотеки для двух целевых платформ: ARM EABI v7a и x86.
Сборка в интегрированной среде разработки Eclipse
1. Откройте Eclipse и загрузите пример [inde-dir]/IDEintegration/NDK/samples/hello-jni.
В меню выберите File > New > Project > Android.
Нажмите кнопку Android Project from Existing Code.
В поле Root Directory нажмите кнопку Browse. и выберите папку [ndk-dir]/samples.
Затем щелкните Deselect All и выберите только нужный проект: hello-jni
Снимите флажок Copy projects into workspace.
Нажмите кнопку Finish.
2. Добавьте в проект поддержку нативного кода.
Щелкните имя проекта правой кнопкой мыши и выберите Android Tools > Add Native Support.
Нажмите кнопку Finish.
Примечание. Если после этого шага на консоли появляется сообщение об ошибке Unable to launch cygpath, этот шаг можно пропустить, что не повлияет на проект.
3. Создайте отдельную конфигурацию сборки для каждой целевой платформы, задайте команду сборки.
Щелкните проект правой кнопкой мыши и выберите Project properties -> C/C++ Build -> Manage configurations.
Щелкните New. , чтобы добавить новые конфигурации на основе конфигурации по умолчанию.
Имя: x86_icc Описание: для целевой платформы x86 с помощью компилятора Intel icc
Имя: arm_gcc Описание: для целевой платформы ARM с помощью компилятора GNU gcc
В этом же окне свойств проекта установите для параметра Configuration значение x86_icc.
Снимите флажок Use default build command.
Добавьте следующий текст в поле Build command: ndk-build APP_ABI=x86 NDK_TOOLCHAIN=x86-icc.
Щелкните Apply.
В этом же окне свойств проекта установите для параметра Configuration значение arm_gcc.
Снимите флажок Use default build command.
Добавьте следующий текст в поле Build command: ndk-build APP_ABI=armeabi-v7a NDK_TOOLCHAIN=arm-linux-androideabi-4.8.
Нажмите кнопку Apply, затем нажмите кнопку ОК.
4. Очистка всей рабочей области приложения
Если файл Application.mk существует в папке [eclipse-workspace-dir]\HelloJni\jni, убедитесь, что он не содержит следующую строку.
NDK_APP.local.cleaned_binaries=true
Щелкните проект правой кнопкой мыши и выберите Build configurations > Clean all….
5. Создайте файл Application.mk в папке [eclipse-workspace-dir]\HelloJni\jni, если он не существует, и убедитесь, что он содержит следующую строку.
NDK_APP.local.cleaned_binaries=true
6. Соберите двоичный файл для целевой архитектуры ARM* с помощью gcc и для целевой архитектуры x86 с помощью компилятора Intel.
Щелкните проект правой кнопкой мыши и выберите Build Configurations > Build Selected.
Выберите arm_gcc и x86_icc.
Нажмите кнопку ОК.
Проверьте выходные двоичные файлы по следующим адресам.
[eclipse-workspace-dir]\HelloJni\libs\armeabi-v7a\libhello-jni.so
[eclipse-workspace-dir]\HelloJni\libs\x86\libhello-jni.so
7. Создание неподписанных пакетов приложений
Щелкните проект правой кнопкой мыши и выберите Android Tools > Export Unsigned Application Package.
Примечание о невыполнении очистки двоичных файлов в .\libs\[targetabi]
Параметр NDK_APP.local.cleaned_binaries=true для отключения удаления собранных ранее библиотек может не работать в будущих версиях NDK. См. [ndk-dir]/build/core/setup-app.mk для получения информации о том, как отключить действия удаления для установленных двоичных файлов.
Прочие статьи по теме и ресурсы
Дополнительные сведения о средствах Intel для разработчиков Android см. на сайте Intel Developer Zone for Android.
Источник
Bambuser ffmpeg — «arm-linux-androideabi-gcc is unable to create an executable file.»
I know this may be possible duplicate of some questions. but answers for those threads are not helping me.
I am trying to compile ffmpeg library for android using Bambuser’s ffmpeg.
I downloaded Archive for client versions 1.3.7 to 1.6.0. from bambuser.
I followed instruction given in REAME.
While running ./build.sh i came across following error
Here are last few lines of config.log of ffmpeg
in tmp i do not find any relative folder or file as per config.log says «ffconf.qflVj27Q.c».
I am doing this on
1. Ubuntu 11.10
2. OpenJDK 6
3. android-ndk-r5b
NOte:
I only have API-10 Installed in eclipse. (if it matters :D)
What could be the solution for this?
2 Answers 2
I finally found the problem with my setup when facing this same issue. Looking at the arm-build.sh script, I started following the script. Notice the «TOOLCHAIN=. » path.
Originally the path was: TOOLCHAIN= echo $NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/*-x86
When I went to verify this path exists, I noticed that it did not. I think the reason is that I have a 64-bit build.
My path is actually: . /toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
What I ended up doing was copying the folder, and renaming it to «linux-x86» and now all is compiling.
Источник
Compiling ICU using arm-linux-androideabi-4.4.3
I would like to cross-compile ICU static libs for Android using Cygwin. So far, I have been able to configure and make the Cygwin/MSVC and Cygwin versions. I have installed the android-ndk-r7 and can see a version of gcc in the toolchains directory. Several examples suggest using host:arm-eabi — but this is not present on my machine.
I have copied mh-linux to mh-unknown in /icu/source/config and run the following:
I get the following error:
I’m sure this is a «stupid» question, but how do I get the ICU configure script to point to the gcc under $NDK_ROOT\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\arm-linux-androideabi\bin? Am I missing some setup or install? Should I be setting my PATH so that the first gcc found is the one in arm-linux-androiedeabi?
Update 1. I just noticed that while windows\arm-linux=androideabi\bin contains gcc, windows\bin contains arm-linux-androideabi-gcc. How do I get ICU to call this?
Update 2. On the suggestion of Steven R. Loomis, I picked up updates for config.sub and config.guess from
placed android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin into my path, and re-ran configure with —host=arm-linux-androideabi. this time:
Definitely closer. Detailed error from config.log
Update 3. The changes to config.sub and config.guess worked in that we are now using the right gcc compiler. The -lc failure comes from not being able to find libc.so (which is in android-ndk-r7/platforms/android-8/arch-arm/usr/lib» even though this is in the LDFLAGS. I did have an extra space after -L in the original LDFLAGS, but removing this did not help.
«The windows ndk toolchain is (thankfully) native to windows, so it doesnt go through the cygwin translation layer which would translate /cygdrive paths.»
Update 5. Swapped all instances of /cygdrive/d/ with D:/. Now C compiler works though it still doesn’t make. Suspect that ICU_CROSS_BUILD has to be in the icu/source directory.
Update 6. I re-configured and rbuilt my Cygwin folder in icu-cygwin. Go figure, this time icucross.mk was there. Successful configuration! But.
Update 7 Make did not end up so well.
What. It seems that now we want Cygwin paths again.. 🙁
Update 8. Changed my paths so that HOST_ICU and ICU_CROSS_BUILD use Cygwin paths, but NDK_ROOT is Windows path (since Android NDK ld can’t handle cygwin paths).
THis time further but
Seems that what has to happen is that arm-linux-androideabi-gcc needs to be made for cygwin, or the cross-build will not work.
Update 9. It seems that arm-linux-androideabi-gcc does not support cygwin paths — though ndk_build does. However, ICU is set to call arm-linux-androideabi-gcc while «make» requires cygwin paths. Maybe time to switch to OSX or Linux to do this.
Update 10 — Still no success. Cygwin — Apparently the arm-linux-androideabi Crystax build also doesn’t support cygwin paths in -L. Attempting to cross-compile under Cygwin will give the -lc error, since it cannot parse the -L/cygdrive/d/. path to the library. Changing to D:/ helps, but later causes make to fail since it is Cygwin make.
Linux — Using the normal NDK r7 build, configuration will fail with a wchar_t = 0 error. The Crystax NDK build will fix this, and make will fail complaining about uint64_t in Android’s sys/type.h. See ICU library in Android NDK. You can force it to be defined and it will lead to yet another error about size mismatch.
OSX — Probably the most successful, compiling using the official build or the Crystax build, it leads directly to the uint64_t bug. If you hack around it, it will lead you to
Источник