Код
../configure --target=arm-none-eabi --enable-interwork --disable-newlib-supplied-syscalls --with-gnu-ld --with-gnu-as --disable-shared
при сборке простейшего приложения выдаётся:
Код
$ cat math.c
#include <math.h>
int main(int argc,char** argv)
{
double a=1.33,b=2.44;
double c;
c=sin(a)+cos(b);
return 0;
}
#include <math.h>
int main(int argc,char** argv)
{
double a=1.33,b=2.44;
double c;
c=sin(a)+cos(b);
return 0;
}
Код
$ arm-none-eabi-gcc math.c -o math.o -lm
arm-none-eabi-gcc math.c -o math.o -lm
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x14): undefined reference to `_exit'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xe): undefined reference to `_sbrk'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text._write_r+0x12): undefined reference to `_write'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text._close_r+0xe): undefined reference to `_close'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text._lseek_r+0x12): undefined reference to `_lseek'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-readr.o): In function `_read_r':
readr.c:(.text._read_r+0x12): undefined reference to `_read'
collect2: ld returned 1 exit status
make: *** [math] Error 1
arm-none-eabi-gcc math.c -o math.o -lm
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x14): undefined reference to `_exit'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xe): undefined reference to `_sbrk'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text._write_r+0x12): undefined reference to `_write'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text._close_r+0xe): undefined reference to `_close'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text._lseek_r+0x12): undefined reference to `_lseek'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-readr.o): In function `_read_r':
readr.c:(.text._read_r+0x12): undefined reference to `_read'
collect2: ld returned 1 exit status
make: *** [math] Error 1
еще насторожилом отсутствие lib/thumb2 в директории установки.. присутствует только lib/thumb
а если смотреть примеры поставляемых с LPC17xx make-файлов там наличествует lib/thumb2:
Код
THUMB2GNULIB ='$(GNU_INSTALL_ROOT)/lib/gcc/arm-none-eabi/$(GNU_VERSION)/thumb2'
THUMB2GNULIB2 ='$(GNU_INSTALL_ROOT)/arm-none-eabi/lib/thumb2'
THUMB2GNULIB2 ='$(GNU_INSTALL_ROOT)/arm-none-eabi/lib/thumb2'