解决办法
arm-none-linux-gnueabi-gcc加上-nostdlib选项
-nostdlib 不连接系统标准启动文件和标准库文件,只把指定的文件传递给连接器
不加该选项,编译器默认会添加启动代码和库文件(裸机开发用不了故报错)
该选项常用于编译内核、bootloader等程序,它们不需要启动文件、标准库文件
裸机开发用不了 ,也不需要
操作系统
C程序执行第一条指令不是main函数
C编译器默认会在C程序之前增加部分代码(C运行环境配置)
例:crt1.o、crti.o、crtend.o等
标准库文件、设置C程序堆栈等
以上增加部分代码依赖于操作系统,裸机无法执行
裸机开发
增加-nostdlib选项,去掉默认添加的启动代码和库文件
裸机开发中不依赖操作系统,C运行环境需在启动C代码前自行完成配置