linux 2.4.21下gcc编译出错:collect2: cannot find `ld' 求指教

wenqin2006 2012-12-09 12:30:14
如题,我查了/usr/bin/ld是存在的也是可执行的,在用户路径上也有/usr/bin这个目录,但是我执行如下命令:gcc a.c -o a就是会报错
求各位大年指教一下,小弟先谢谢了
...全文
737 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bubifengyun 2013-09-11
  • 打赏
  • 举报
回复
不至于每次都要输入该命令吧。我的切换到root用户就没有这个问题,在自己的账号下就有这个问题。有更好的解决方案吗?
wenqin2006 2012-12-09
  • 打赏
  • 举报
回复
引用 楼主 wenqin2006 的回复:
如题,我查了/usr/bin/ld是存在的也是可执行的,在用户路径上也有/usr/bin这个目录,但是我执行如下命令:gcc a.c -o a就是会报错 求各位大年指教一下,小弟先谢谢了
cat /etc/issue Red Hat Enterprise Linux ES release 3 (Taroon Update 8) uname -a Linux ems 2.4.21-47.ELsmp #1 SMP Wed Jul 5 20:38:41 EDT 2006 i686 i686 i386 GNU/Linux [root@ems shm]# gcc s.c -o s gcc s.c -o s s.c:3:34: warning: no newline at end of file collect2: cannot find `ld' 执行命令如上 这个ld是连接文件呀,是存在的呀,也是可执行的呀。可就是不行。求解决!
phpman_cn 2012-12-09
  • 打赏
  • 举报
回复
自己连接试试,看行不?
帅得不敢出门 2012-12-09
  • 打赏
  • 举报
回复
你的提示不全吧, 可能是某个lib没有找到.
wenqin2006 2012-12-09
  • 打赏
  • 举报
回复
问题已经解决了,我在网上搜了,也有不少问这个问题的。不过都没得答案,三楼说得对,自己连接就成功了。先gcc 编译成中间代码即像gcc -c hello.o hello.c 然后用指定路径的ld连接注意选项-dynamic-linker /lib/ld-linux.so.2 ,不然会出现/usr/lib/libc.so.1: bad ELF interpreter错误,命令如:/usr/bin/ld -o hello hello.o -lc -dynamic-linker /lib/ld-linux.so.2,这样就成功了, 所以感觉出现上面错误的原因是编译连接环境没搞好,出现ld命令没有找到。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧