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

本文介绍了解决在静态编译过程中遇到的找不到libc.a文件的问题,通过安装特定的glibc静态库包实现,并提供了详细的步骤指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述: 在专题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+


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

/opt/android-ndk-r18b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --sysroot=/opt/android-ndk-r18b/platforms/android-21/arch-arm64 -I/home/chang/dev/mpp/mpp_build/install/usr/local/include -fPIC -c -o /tmp/ffconf.VYhSixhJ/test.o /tmp/ffconf.VYhSixhJ/test.c /opt/android-ndk-r18b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -L/home/chang/dev/mpp/mpp_build/install/usr/local/lib -lmpp --sysroot=/opt/android-ndk-r18b/platforms/android-21/arch-arm64 -o /tmp/ffconf.VYhSixhJ/test /tmp/ffconf.VYhSixhJ/test.o /..//bin/ld: cannot find crt1.o: No such file or directory /..//bin/ld: cannot find crti.o: No such file or directory /..//bin/ld: cannot find crtbegin.o: No such file or directory /..//bin/ld: cannot find -lmpp /..//bin/ld: cannot find -lgcc /..//bin/ld: cannot find -lgcc_s /..//bin/ld: skipping incompatible /opt/android-ndk-r18b/platforms/android-21/arch-arm64/usr/lib/libc.so when searching for -lc /..//bin/ld: skipping incompatible /opt/android-ndk-r18b/platforms/android-21/arch-arm64/usr/lib/libc.a when searching for -lc /..//bin/ld: skipping incompatible /opt/android-ndk-r18b/platforms/android-21/arch-arm64/usr/lib/libc.so when searching for -lc /..//bin/ld: skipping incompatible /opt/android-ndk-r18b/platforms/android-21/arch-arm64/usr/lib/libc.a when searching for -lc /..//bin/ld: cannot find -lc /..//bin/ld: cannot find -lgcc /..//bin/ld: cannot find -lgcc_s /..//bin/ld: cannot find crtend.o: No such file or directory /..//bin/ld: cannot find crtn.o: No such file or directory clang: error: linker command failed with exit code 1 (use -v to see invocation) C compiler test failed.好像更多错误了
最新发布
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值