在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息:
/usr/bin/ld: cannot find -lxxx
这些问题都是因为找不到相应的lib文件,其中xxx即表示函式库文件名称,如:libc.so、libltdl.so、libXtst.so。
其命名规则是:lib+库名(即xxx)+.so。
造成这种情况可能有有以下三种情形:
1、 系统没有安装相对应的lib
2、 相对应的lib版本不对
3、 lib(.so档)的symbolic link 不正确,没有连结到正确的函式库文件(.so)
第一种,解决方案如下:
CentOS 7:
yum install glibc-static libstdc++-static
Ubuntu 16.04:
apt install libstdc++-5-dev