在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
在Linux环境下编译源代码时,经常遇到'cannot find -lxxx'错误,意味着系统找不到所需的库文件。这个问题可能由三个原因引起:1) 缺少对应的lib;2) lib版本不匹配;3) symbolic link错误。解决方法包括使用包管理器(如yum或apt)安装缺失的库,确保库版本正确,以及检查和修复库的symbolic link。例如,在CentOS7上,可以运行'yum install glibc-static libstdc++-static'来安装必要的库。
209

被折叠的 条评论
为什么被折叠?



