LINUX.ORG.RU

C, компиляция под ARM

 , ,


0

2

Вопрос в заголовке.

Имеем что-то типа test.c. Нужно получить бинарник под ARM. Пытаюсь делать так:

gcc test.c -o test.o --target=arm-linux

Выводит это:
cc1: warning: command line option '-ftarget=arm-linux' is valid for Java but not for C

Как скомпилировать под ARM?


Ответ на: комментарий от ozzee

Собирай тулчейн через crosstools-ng или ставь из реп

SZT ★★★★★
()
Ответ на: комментарий от ozzee

Да, на х86 можно собрать бинарник под арм, для этого нужен кросс-компилятор в целевую архитектуру(в данном случае арм).
Кросс можно собрать самому, как советуют ниже, или поставить из реп.

smd@t430:~$ apt-cache search gcc-arm-linux-gnueabi
gcc-arm-linux-gnueabihf - The GNU C compiler for armhf architecture
gcc-arm-linux-gnueabi - The GNU C compiler for armel architecture
Вот пример кросса из убунтовских реп.

Deleted
()

А я неосилил кросскомпиляцию. Запускаю archlinuxarm в qemu:

qemu-system-arm \
  -m 1G \
  -machine vexpress-a9 \
  -dtb vexpress-v2p-ca9.dtb \
  -cpu cortex-a9 \
  -kernel zImage \
  -append "root=/dev/mmcblk0 ro" \
  -drive file=$disk,if=sd,index=0,media=disk,format=raw \
  -net nic,model=lan9118 \
  -net tap,ifname=tap1,script=no,downscript=no
makoven ★★★★★
()
Ответ на: комментарий от Deleted

Какой командой нужно вызывать компилятор? Я так понимаю не gcc. Вот что у меня:

user@user-Lenovo-G565:~$ gcc
gcc             gcc-ar          gcc-nm-4.9      gcc-ranlib-5
gcc-4.6         gcc-ar-4.9      gcc-nm-5        
gcc-4.9         gcc-ar-5        gcc-ranlib      
gcc-5           gcc-nm          gcc-ranlib-4.9  

ozzee
() автор топика
Ответ на: комментарий от anonymous

Спасибо большое, думаю что проблема решена.

ozzee
() автор топика
Ответ на: комментарий от makoven

Хороший вариант, когда надо не просто бинарь собрать, а что-то сложное с сопутствующими либами. Хотя лично я OpenEmbedded/Yocto использую...

I-Love-Microsoft ★★★★★
()

Настолько зашкаливающего тупняка я не видел давненько...

Deleted
()
Ответ на: комментарий от adamantan

И ещё важный момент: используемый gcc на всех машинах, участвующих в процессе сборки должен быть одинаковой версии.

Не обязательно :) Но это имеет свою цену :)

slackwarrior ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.