Я учусь программировать на своем Raspberry Pi. Когда я компилирую, я использую команды as
и ld
для компиляции и компоновки. Я хочу связать с libc и использовать malloc, но не использовать gcc
в качестве моего компилятора. Я пытался связать с /usr/lib/arm-linux-gnueabihf/libc.so
Вот что я напечатал (изменить):
as test.s -o test.o
ld -o test test.o /usr/lib/arm-linux-gnueabihf/libc.so
./test
он скомпилирован и связан, но когда я пытаюсь его запустить, он говорит, что тест не найден
Вот test.s
:
.global _start
.extern malloc
_start:
mov R0, #4
bl malloc
mov R0, #0
mov R7, #1
svc 0
.end
Это нормально?
Или мне нужно сделать что-то еще?
Любая помощь будет оценена?
РЕДАКТИРОВАТЬ вот что я делаю (не забудьте инициализировать C, если используете некоторые из его функций!):
ld -o test /usr/lib/arm-linux-gnueabihf/libc.so test.o -dynamic-linker /lib/ld-linux-armhf.so.3