LINUX.ORG.RU

ld arm в (линукс не arm)

 ,


0

1

Например я компилирую программу для arm, arm-linux-gnueabi-gcc-5 main.c -o test. У меня не arm система. Но в test файле с помощью

file test
/lib/ld-linux.so.3
ld-linux.so.3 которого не существует. И при запуске
qemu-arm ./test или
qemu-arm test
выдаёт что нет /lib/ld-linux.so.3

Либо линковать статически (с ключом -static), либо сделать чрут, куда установить как минимум qemu-arm, целевую программу и все необходимые ей библиотеки, включая ld-linux.

anonymous
()

Читай в конце моей темы по ссылке, сделаешь себе chroot с qemu и сможешь программы для ARM собирать: собрать Qt 5 для ARM

Правда поколения библиотек должны быть примерно соответствующими. В любом случае попробуй с Debian 8 внутри chroot для начала, может и заработает на твоей целевой ARM-железке.

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

qemu -L /path/to/sysroot

anonymous
()

При запуске ты говоришь qemu, что твой файл test является образом диска:

qemu-arm ./test

http://markdingst.blogspot.ru/2012/06/make-own-bootloader-for-arm-cortex-m3.html вот пример бутлоадера, который запустится таким образом. Но т.к. у тебя используется ld-linux(динамический линкер), то похоже что ты собираешь бинарник для Linux под ARM архитектуру. Лучше будет указать kernel/initrd и образ диска с этим бинарником. Хотя можно обойтись правильным initrd с libc, либо взять uclibc и собрать бинарник с ним.

xpahos ★★★★★
()
Последнее исправление: xpahos (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ты опять свои кривые костыли рекламируешь, когда есть божественный proot?

Когда сам осилю proot - буду его пиарить ;)

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

Для этого статически, либо подсовывать sysroot/rootfs

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