6218|4

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

eclipse cdt 在arm编程上的问题 [复制链接]

  1. #include
  2. #include
  3. int main(){
  4.         printf("hello world");
  5.         return 0;
  6. }
复制代码

我用的是yagarto工具链.编译这个程序。出现下面问题

  1. make all
  2. 'Building target: uart_recv.elf'
  3. 'Invoking: ARM Windows GCC C Linker'
  4. arm-elf-gcc -Wl,-Map,uart_recv.map -mcpu=arm920t -g3 -ggdb -o"uart_recv.elf"  ./tg_recv.o   
  5. c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/lib\libg.a(lib_a-exit.o): In function `exit':
  6. C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\stdlib/../../../../../newlib-1.18.0/newlib/libc/stdlib/exit.c:65: undefined reference to `_exit'
  7. c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/lib\libg.a(lib_a-sbrkr.o): In function `_sbrk_r':
  8. C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\reent/../../../../../newlib-1.18.0/newlib/libc/reent/sbrkr.c:60: undefined reference to `_sbrk'
  9. c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/lib\libg.a(lib_a-writer.o): In function `_write_r':
  10. C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\reent/../../../../../newlib-1.18.0/newlib/libc/reent/writer.c:58: undefined reference to `_write'
  11. c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/lib\libg.a(lib_a-closer.o): In function `_close_r':
  12. C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\reent/../../../../../newlib-1.18.0/newlib/libc/reent/closer.c:53: undefined reference to `_close'
  13. c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/lib\libg.a(lib_a-fstatr.o): In function `_fstat_r':
  14. C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\reent/../../../../../newlib-1.18.0/newlib/libc/reent/fstatr.c:62: undefined reference to `_fstat'
  15. c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/lib\libg.a(lib_a-isattyr.o): In function `_isatty_r':
  16. C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\reent/../../../../../newlib-1.18.0/newlib/libc/reent/isattyr.c:58: undefined reference to `_isatty'
  17. c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/lib\libg.a(lib_a-lseekr.o): In function `_lseek_r':
  18. C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\reent/../../../../../newlib-1.18.0/newlib/libc/reent/lseekr.c:58: undefined reference to `_lseek'
  19. c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/lib\libg.a(lib_a-readr.o): In function `_read_r':
  20. C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\reent/../../../../../newlib-1.18.0/newlib/libc/reent/readr.c:58: undefined reference to `_read'
  21. collect2: ld returned 1 exit status
  22. make: *** [uart_recv.elf] Error 1
复制代码


然后我勾选了 --nostdlib
出现了下面错误:

make all
'Building target: uart_recv.elf'
'Invoking: ARM Windows GCC C Linker'
arm-elf-gcc -nostdlib -Wl,-Map,uart_recv.map -mcpu=arm920t -g3 -ggdb -o"uart_recv.elf"  ./tg_recv.o   
c:/program files/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/bin/ld.exe: warning: cannot find entry symbol _start; defaulting to 00008000
./tg_recv.o: In function `main':
F:\workspace\uart_recv\Debug/../tg_recv.c:10: undefined reference to `printf'
collect2: ld returned 1 exit status
make: *** [uart_recv.elf] Error 1

之前在linux下面没什么问题。现在在windows下面有这些问题。网络上看到一些是newlib问题。不知道怎么解决
此帖出自ARM技术论坛

最新回复

我的问题解决了,请参考这个网址:http://forum.sparkfun.com/viewtopic.php?t=5390&start=15 应该也能解决你的问题,good luck。  详情 回复 发表于 2010-1-4 17:30
点赞 关注
 

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
后面的错误只是printf没有定义,注释掉这行试试吧
此帖出自ARM技术论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
基本上的C的库没有连接好。不知道怎么连
此帖出自ARM技术论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
我也遇到了和你类似的问题,编译一个工程时,提示

d:/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/lib\libg.a(lib_a-sbrkr.o): In function `_sbrk_r':
C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\reent/../../../../../newlib-1.18.0/newlib/libc/reent/sbrkr.c:60: undefined reference to `_sbrk'
collect2: ld returned 1 exit status
make: *** [rtoscore.elf] Error 1

环境为windows下的Eclipse+yagarto工具链(arm-elf-gcc版本为4.4.2),但是在虚拟机下Linux中直接用arm-elf-gcc 4.2.4版本编译是没问题的,google了一下,似乎与newlib有关,很复杂,实验没成功。

有遇到类似问题的朋友给些建议,多谢~
此帖出自ARM技术论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
我的问题解决了,请参考这个网址:http://forum.sparkfun.com/viewtopic.php?t=5390&start=15

应该也能解决你的问题,good luck。
此帖出自ARM技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表