Linux: /usr/bin/ld: cannot find -lc Error and Solution
2011-11-03 17:08
525 查看
这个简单的问题折腾我近2个小时的时间,下载新gcc,libc,再编译Libc时一路曲折,居然说ld older。我郁闷的不行
其实早就想到是Libc.so的路径问题,但是自己当时把找到usr/lib/i386-linux-gnu/
libc.so 和 libc.a,复制 /usr/local/lib/目录中,发现还是不行,当时认为跟这个路径无关了,结果应该将这个拷贝到/usr/lib/目录中,主要是因为 /etc/ld.so.conf.d/libc.conf这个配置文件忽悠了我,让我误认为Libc的路径就是 /usr/local/lib/,结果就坑爹了~
下面将介绍LIB的搜索机制~
1./etc/ld.so.conf.d
这个LIB搜索的配置文件,你发现这里面内容是include /etc/ld.so.conf.d/*.conf,因此如果需要添加PATH,可以在ld.so.conf.d/*.conf或者etc/ld.so.conf.d中任何一个配置文件中加入路径字符串,如i686-linux-gnu.conf中配置
/lib/i386-linux-gnu/usr
/lib/i386-linux-gnu
/lib/i686-linux-gnu
其中home/~linux/fork目录是自己添加的,在fork目录中编译一个.so库,再编译一个引用该库的main,经测试,可以搜索到Lib.
注意再修改这个配置文件后,需要执行ldconfig来重新配置系统的搜索路径!
2.LD_LIBRARY_PATH
使用export LD_LIBRARY_PATH=path来指定搜索LIB,这种方式也是可以实现。
3.在编译时就指定LIB的搜索路径
1.编译目标代码时指定的动态库搜索路径;
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib;
5.默认的动态库搜索路径/usr/lib。
其实早就想到是Libc.so的路径问题,但是自己当时把找到usr/lib/i386-linux-gnu/
libc.so 和 libc.a,复制 /usr/local/lib/目录中,发现还是不行,当时认为跟这个路径无关了,结果应该将这个拷贝到/usr/lib/目录中,主要是因为 /etc/ld.so.conf.d/libc.conf这个配置文件忽悠了我,让我误认为Libc的路径就是 /usr/local/lib/,结果就坑爹了~
下面将介绍LIB的搜索机制~
1./etc/ld.so.conf.d
这个LIB搜索的配置文件,你发现这里面内容是include /etc/ld.so.conf.d/*.conf,因此如果需要添加PATH,可以在ld.so.conf.d/*.conf或者etc/ld.so.conf.d中任何一个配置文件中加入路径字符串,如i686-linux-gnu.conf中配置
/lib/i386-linux-gnu/usr
/lib/i386-linux-gnu
/lib/i686-linux-gnu
/usr/lib/i686-linux-gnu /home/t~n/linux/fork
其中home/~linux/fork目录是自己添加的,在fork目录中编译一个.so库,再编译一个引用该库的main,经测试,可以搜索到Lib.
注意再修改这个配置文件后,需要执行ldconfig来重新配置系统的搜索路径!
2.LD_LIBRARY_PATH
使用export LD_LIBRARY_PATH=path来指定搜索LIB,这种方式也是可以实现。
3.在编译时就指定LIB的搜索路径
1.编译目标代码时指定的动态库搜索路径;
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib;
5.默认的动态库搜索路径/usr/lib。
相关文章推荐
- linux 解决 Linux: /usr/bin/ld: cannot find -lc Error and Solution
- linux 编译安装的时候提示/usr/bin/ld: cannot find -lc
- linux--安装完qt出现 /usr/bin/ld: error: cannot find -lGL错误
- Linux编译静态链接出现:/usr/bin/ld: cannot find -lc
- Linux 编译 /usr/bin/ld: cannot find -lxxx总结
- /usr/bin/ld: cannot find -lc
- Linux下GCC编译器链接任意目录下库文件(解决错误“/usr/bin/ld: cannot find -lxxx”)
- /usr/bin/ld: error: cannot find -lGL
- /usr/bin/ld: error: cannot find -lGL
- chkrootkit安装过程中出现/usr/bin/ld: cannot find -lc的解决方法
- [Linux-C++] 解决/usr/bin/ld: cannot find -lxxx 问题
- 交叉编译时报错:/usr/bin/ld: cannot find -lc
- 编译时候出现/usr/bin/ld: cannot find -lssl /usr/bin/ld: cannot find -lcrypto collect2: error: ld returned
- /usr/bin/ld: cannot find -lc
- G++ 处理 /usr/bin/ld: cannot find -lc (2012-07-25 09:45:09)
- Linux下编译C/C++时,出现/usr/bin/ld: cannot find -l*** 错误的处理
- linux下编译代码遇到“/usr/bin/ld: cannot find -lcrypto”的问题
- 编译报错 /usr/bin/ld: cannot find -lc 解决
- 【解决】/usr/bin/ld: cannot find -lc
- /usr/bin/ld: cannot find -lc