10/17/13

/usr/bin/ld: cannot find -lxxx问题的处理方法

在linux环境编译程序或lib的源码时,常常会出现如下的错误讯息:
/usr/bin/ld: cannot find -lxxx

随着编译不同类型的源码,而有不同的报错

/usr/bin/ld: cannot find -lXtst

其中xxx即表示函式库文件名称,如上例的:libXtst.so。
其命名规则是:lib+库名(即xxx)+.so。

发生这样的原因有以下三种情形:
1、系统没有安装相对应的lib 【安装响应lib,yum or agt-get】
2、相对应的lib版本不对 【安装正确版本程序】
3、lib(.so)的软链接不正确,没有链接到正确的函式库文件(.so) 【重新做正确软链接】
4、安装了响应的so,但未添加到系统环境变量,默认找不到 【编译时,-L/install_path/lib -lxxx 或者 将/install_path/lib添加到/etc/ld.so.conf,ldconfig -v】