处理 /usr/bin/ld: cannot find -lc等编译问题

用g++编译C++程序时显示出:
/usr/lib/ld: cannot find -lc
/usr/lib/ld: cannot find -lgcc_s
/usr/lib/ld: cannot find -lm
/usr/lib/ld: cannot find -lgcc_s
的错误。在网上看了很多中关于/usr/lib/ld: cannot find -lXXX的解法,但是大同小异,没有很具体的讲解。所以把我的解决方法记录一下。
 
解决/usr/lib/ld: cannot find -lc:
1. 在系统中搜索 libc.so 文件。搜索出一个无效的链接,删除;还有一个 libc.so.6 ,在/usr/lib/i386-linux-gnu下面。
2. 进入usr/lib目录:cd /usr/lib
3.建立链接:sudo ln -sv /lib/i386-linux-gnu/libc.so.6 libc.so
 
解决/usr/lib/ld: cannot find -lm:
1. 在系统中搜索 libm.so 文件。搜索出一个 libm.so ,在/usr/lib/i386-linux-gnu下面。
2. 进入usr/lib目录:cd /usr/lib
3.建立链接:sudo ln -sv /usr/lib/i386-linux-gnu/libm.so libm.so
 

解决/usr/lib/ld: cannot find -lgcc_s:
1. 在系统中搜索 libgcc_s.so 文件。同样在/usr/lib/i386-linux-gnu下面搜索到了libgcc_s.so.1。
2. 进入usr/lib目录:cd /usr/lib
3.建立链接:sudo ln -sv /lib/i386-linux-gnu/libgcc_s.so.1 libgcc_s.so
 
当某一个链接建立成功的时候,系统显示是类似这样的:
“libgcc_s.so” -> “/lib/i386-linux-gnu/libgcc_s.so.1”
 
另: http://blog.csdn.net/mingchan/article/details/6932804

转载自:http://blog.csdn.net/season_hangzhou/article/details/8469146#plain

此篇文章有点小问题,如下
<解决/usr/lib/ld: cannot find -lc> 解决方案中博主的lib.so.6文件在/usr/lib/i386-linux-gnu下面,而通常我们的lib.so.6文件在/usr/lib文件夹下面,故而我们不能直接照抄博主的命令
sudo ln -sv /lib/i386-linux-gnu/libc.so.6 libc.so
而应该改成
sudo ln -sv /usr/lib/libc.so.6 /usr/lib/libc.so
同理如果libc.so.6文件在其他文件夹下将/usr/lib/libc.so.6改成实际的路径即可

参考:http://tchuairen.blog.51cto.com/3848118/1559436

你可能感兴趣的:(汇编,linux)