我想为STM32F217IG微控制器创建一个项目.
然后我安装了Eclipse和GNU for ARM嵌入式GCC交叉编译器.我不认为这是Code Sourcery.我使用它,因为它支持浮点,而Code Sourcery则不支持.
一旦我这样做,我尝试创建一个只有两个源文件的真正小项目:test.c和main.c,只写入两个:
#include <stdlib.h>
#include <stdio.h>
int main (void)
{
printf("Hello, World!");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我更改了项目属性中的line命令,用arm-none-eabi-gcc替换GCC,然后尝试编译项目.
我自己没有创建任何make文件; 我在Eclipse中使用了自动创建.
这个建筑看起来很好,但是当谈到链接器时,我在控制台中遇到了以下错误:
make all
'Building target: test3'
'Invoking: Cross GCC Linker'
arm-none-eabi-gcc -o"test3" ./main.o ./test3.o
c:/program files/gnu tools arm embedded/4.6 2012q4/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib\libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x2c): undefined reference to `_exit'
c:/program files/gnu tools arm embedded/4.6 2012q4/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib\libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0x18): undefined reference to `_sbrk'
c:/program files/gnu tools arm embedded/4.6 2012q4/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib\libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text._write_r+0x20): undefined reference to …Run Code Online (Sandbox Code Playgroud)