Я пытаюсь получить приложение "Hello World", скомпилированное для цели ARM. Я кросс-компиляции с использованием gcc на Ubuntu / VMWare. Если я скомпилирую для хост-машины, он работает нормально. Когда я компилирую для цели, я получаю эту ошибку:
/root/picokernel/toolchain/arm-eabi/lib/libcs3hosted.a(hosted-sbrk.o): In function `_sbrk':
sbrk.c:(.text+0x74): undefined reference to `__cs3_heap_limit'
/root/picokernel/toolchain/arm-eabi/lib/libcs3hosted.a(hosted-sbrk.o):(.data+0x0): undefined reference to `__cs3_heap_start'
make: *** [HelloWorld] Error 1
Так что я думаю, что мне нужно что-то связать - возможно, у моего набора инструментов нет нужных библиотек? Я смог собрать ядро, поэтому подумал, что оно завершено. Спасибо! Это целевая плата. - работает Angstrom или Android.
Makefile
CC=$(CROSS_COMPILE)gcc
LD=$(CROSS_COMPILE)ld
CROSS_LIB1=/root/picokernel/toolchain/arm-eabi/lib
CROSS_LIB2=/root/picokernel/toolchain/lib/gcc/arm-eabi/4.2.1
CFLAGS=-Wall
LDFLAGS= -L$(CROSS_LIB1) -L$(CROSS_LIB2) -lc -lcs3hosted -lg -lgcc --entry main
HelloWorld: HelloWorld.o
$(LD) HelloWorld.o $(LDFLAGS)
чистый:
rm -f HelloWorld HelloWorld.o
Программа
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello World\n");
return 0;
}