27. 10.

类似/usr/bin/ld: cannot find -xxxx的错误有很多, 首先我们可以最简单的判断一下:

这类情况一般是由于缺乏某某库文件, 又或者可能是由于已存在的库问题版本不对造成的

一般都是解决的办法就是安装缺乏的devel包就可以解决, 当然还有其他的未知因素, 我们看一个实例:

我在一台装centos5.2 x86_64的系统上配置php环境, 提示这个错误

“/usr/bin/ld: cannot find -lmysqlclient”

于是我安装了

#  yum -y install mysql-devel

结果提示依旧, 我根据提示查看config.log

/usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient.a when searching for -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient

她还是去找/usr/local/mysql/lib/libmysqlclient.so, 我来把这个错的换成对了, 刚才装了mysql-devel, 那么在/usr/lib64下就多了一个mysql的目录

# cd /usr/local/mysql
# mv lib lib.bak
# ln -s /usr/lib64/mysql /usr/local/mysql/lib (给他做个软链接)

然后再次编译安装php, 一切正常!


作者: hao32 | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址:http://www.hao32.com/webserver/258.html

Tags: ,

有4条 对 „解决/usr/bin/ld: cannot find -lmysqlclient错误“ 的评论

  1. 编译sasl时mysql报错 发表评论说:

    […] 网上搜索一下,发现是库文件没有安装,大多数情况是devel包没有安装,见http://www.hao32.com/webserver/258.html […]

  2. cjing 发表评论说:

    楼主说的是安装软件时遇到cannot find的问题,可是我修改程序时老是有cannot find -lXXXX,改了makefile文件还是一样,劳烦楼主解释下可以么

  3. admin 发表评论说:

    排查此类问题,先看看是找不到什么库,确定程序需要这个库,然后去了解系统默认会去调用哪些库,最后排查库是不是存在还是路径不对。

  4. yangy 发表评论说:

    新手,编译mysql的示例程序 cannot find -lmysqld 如何判断该库是否存在

发表评论: