/usr/bin/ld: /usr/bin/ld: cannot find -lc

问题描述: 在专题1的交叉工具链讲解部分,使用静态链接方式编译 gcc -static hello.c -o hello, 提示 /usr/bin/ld: /usr/bin/ld: cannot find -lc。 

问题原因: 搜索了之后基本确定是因为 /usr/bin/中缺少libc.a 这个文件。 它是编译器静态编译过程中要用的库文件。


处理办法:利用QQ群里共享的文件glibc-static-2.12-1.80.el6.i686.rpm(我的Linux是Red Hat 企业版6.3)。 

 1. rpm -ivh /home/glibc-static-2.12-1.80.el6.i686.rpm

 2. yum list | grep static 查看
 3. yum install glibc.static 

现在去/usr/bin下面应该就能看得到 libc.a文件了,再次编译也成功了。

补充: 1.对于有经验的人来说这样的问题不算问题,但对于新手来说,每个命令和操作方法都不太熟练,可能会花更长的时间。 希望能有一点帮助。

          2.部分帖子中提到libc.so、glibc.i686等,那可能是默认默认的动态编译方式。注意区分具体问题原因。


附上两个下载glibc-static的链接:

https://pkgs.org/download/glibc-static

http://www.rpmfind.net/linux/rpm2html/search.php?query=libc.a&submit=Search+


本人纯菜鸟,写下来也是作为自己的笔记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值