Команда gcc-arm-linux-gnueabi не найдена

Я пытаюсь установить набор инструментов gnu arm для Ubuntu. Сначала я скачал tar из CodeSourcery. Однако, когда я захожу в папку bin, я не могу запустить ни один из двоичных файлов. Я попытался с./ и без и поместил его в PATH, и он продолжает говорить мне "Команда не найдена", но файл находится в папке прямо передо мной. Затем я попытался выполнить команду sudo apt-get install gcc-arm-linux-gnueabi, за исключением того, что после успешного завершения установки я не могу найти его с помощью whereis gcc-arm-linux-gnueabi. Кто-нибудь может помочь?

12 ответов

Исправлено с использованием:

sudo apt-get install gcc-arm*

Компилируете ли вы на 64-битной ОС? Пытаться:

sudo apt-get install ia32-libs

У меня была такая же проблема при попытке скомпилировать ядро ​​Raspberry Pi. Я выполнял кросс-компиляцию на 64-битной Ubuntu 12.04, а для набора инструментов требуется ia32-libs для работы на 64-битной системе.

См. http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/

Соглашение CodeSourcery заключается в использовании префикса arm-none-linux-gnueabi- для всех исполняемых файлов, а не gcc-arm-linux-gnueabi что вы упоминаете. Итак, стандартное имя для CodeSourcery GCC будет arm-none-linux-gnueabi-gcc,

После того, как вы установили CodeSourcery G++, вам нужно добавить каталог CodeSourcery в ваш PATH,

Как правило, я предпочитаю устанавливать CodeSourcery в каталог, как /opt/arm-2010q1 или что-то типа того. Если вы не знаете, где вы его установили, вы можете найти его, используя locate arm-none-linux-gnueabi-gcc, однако вам может потребоваться принудительно обновить вашу базу данных с помощью sudo updatedb до locate будет работать правильно.

После того, как вы определили, где установлен ваш CodeSourcery, добавьте его в PATH, отредактировав ~/.bashrc как это:

PATH=/opt/arm-2010q1/bin:$PATH

Также принято и очень удобно определять

CROSS_COMPILE=arm-none-linux-gnueabi-

в вашем .bashrc потому что с CROSS_COMPILE Определено, большинство инструментов будет автоматически использовать правильный компилятор для компиляции ARM без каких-либо действий.

Получил ту же ошибку при попытке кросс-компиляции ядра raspberry pi на ubunto 14.04.03 64bit под VM. решение было найдено здесь:

-Установите пакеты, используемые для кросс-компиляции на коробке Ubuntu.

sudo apt-get install gcc-arm-linux-gnueabi make git-core ncurses-dev

-Загрузить цепочку инструментов

cd ~
git clone https://github.com/raspberrypi/tools

-Добавить цепочку инструментов на свой путь

PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

обратите внимание на версию x64 в команде path

Если вы используете 64-битную ОС, то вам нужно установить дополнительные библиотеки.

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

Я также столкнулся с той же проблемой и решил ее после установки следующей зависимости:

sudo apt-get install lib32z1-dev

Если вы используете 64-битную сборку Ubuntu или Debian (см., Например, 'cat /proc/version'), вы должны просто использовать 64-битные кросс-компиляторы, если вы клонировали

git clone https://github.com/raspberrypi/tools

тогда 64-битные инструменты находятся в

tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64

используйте этот каталог для gcc-toolchain. Полезное руководство по компиляции, которому я следовал, доступно здесь. Сборка и компиляция Raspberry PI Kernel (используйте путь -x64 сверху как ${CCPREFIX})

Это немного нелогично. Этот набор инструментов называется gcc-arm-linux-gnueabi. Для вызова инструментов выполните следующее: arm-linux-gnueabi-xxx

где ххх - это gcc или ar или ld и т. д.

Вы установили цепочку инструментов, скомпилированную для i686, на коробку, в которой работает пользовательская область x86_64.

Используйте виртуальную машину i686.

Мне пришлось кросс-компилировать код C в Ubuntu для ARM. Это сработало для меня:

$ sudo apt install gcc-arm-none-eabi

Позже протестировал на эмуляторе qemu

#Install qemu
sudo apt-get install qemu qemu-user-static qemu-system-arm

#Cross compile "helloworld.c"
$ arm-none-eabi-gcc --specs=rdimon.specs   -Wl,--start-group -lgcc -lc -lm -lrdimon -Wl,--end-group helloworld.c -o helloworld

#Run
qemu-arm-static helloworld

Попробуйте следующую команду:

which gcc-arm-linux-gnueabi

Очень вероятно, что команда установлена ​​в /usr/bin,

Вы можете собрать его с помощью Crosstool-ng.

      git clone https://github.com/crosstool-ng/crosstool-ng.git
cd crosstool-ng
git checkout crosstool-ng-1.24.0
./bootstrap
./configure --prefix=${PWD}
make && make install

Чтобы выбрать цепочку инструментов, которую вы хотите создать:

      bin/ct-ng arm-unknown-linux-gnueabi

И сделайте правильную конфигурацию:

      bin/ct-ng menuconfig

Затем начните строить

      bin/ct-ng build

Примечание. Сборка может занять более одного часа .

Другие вопросы по тегам