如何解决"找不到-lidn,-l ***"?

时间:2017-08-30 06:07:31

标签: c++ ubuntu makefile

这些是我的错误消息:

/usr/bin/ld: cannot find -lidn
/usr/bin/ld: cannot find -lrtmp
/usr/bin/ld: cannot find -lnettle
/usr/bin/ld: cannot find -lgnutls
/usr/bin/ld: cannot find -lgssapi_krb5
/usr/bin/ld: cannot find -lkrb5
/usr/bin/ld: cannot find -lk5crypto
/usr/bin/ld: cannot find -lcom_err
/usr/bin/ld: cannot find -llber
/usr/bin/ld: cannot find -lldap
collect2: error: ld returned 1 exit status
Makefile:52: recipe for target 'stratum' failed

我在/usr/lib内找不到任何这些库,这意味着我是否需要下载一些库?

2 个答案:

答案 0 :(得分:0)

通常的修复(假设你安装了这些库)是添加一个或多个-L<path>标志来告诉链接器应该在哪里查找它们。

  

...这意味着我需要下载一些lib?

是的,您需要安装这些。

给定-l***链接器将在这些目录中搜索lib***.a(或OS依赖的等效项)。

答案 1 :(得分:0)

链接器无法找到这些库。如果您已经安装了这些库,那么只需在编译命令中提供-L<path to the library>

如果尚未安装这些库,请使用

命令安装它们
sudo apt-get install libidn
sudo apt-get install librtmp
sudo apt-get install lib<your library name>