使编译退出,出现“/usr/bin/ld: cannot find -lnl”的错误信息。

3

我已经在树莓派上设置了一个radius服务器。现在我想按照http://networkradius.com/doc/FreeRADIUS-Implementation-Ch6.pdf中的第6.2.1篇文章进行测试。不幸的是,如文档中所述构建“eapol_test”文件对我来说并不起作用。当执行时

make eapol_test

在新创建的文件夹中,它运行了一分钟左右然后退出,并显示以下信息:
/usr/bin/ld: cannot find -lnl
collect2: ld returned 1 exit status
Makefile:1625: recipe for target 'eapol_test' failed

使用更新版本的wpa_supplicant不能解决这个问题。 我对make命令不太了解,也不知道如何使它找到"-lnl"(无论这是什么),我也找不到解决此问题的方法。

有人知道如何解决吗?提前感谢您。


“-lnl” 告诉 ld 查找 nl 库(libnl.so 等)。 - Etan Reisner
这意味着我缺少这个库吗? - vicco
好的,现在我该怎么修复这个问题? - vicco
1
安装它(或将其路径添加到编译中使用“-L”)。很抱歉我无法更具体,因为我不知道您的树莓派设置如何。 - Etan Reisner
apt-cache search libnl?看起来可能是 libnl1 或者 libnl-3-200 - Etan Reisner
显示剩余6条评论
1个回答

6

假如有人因为谷歌搜索而意外发现此信息(就像我一样),以下内容可以解决这个问题(适用于Debian Jessie / 来源于 wpa_supplicant-2.5 的代码):

安装 libnl-3-dev 并将 libnl-3.so 链接到 libnl.so

# apt-get install libnl-3-dev
# ln -s /lib/x86_64-linux-gnu/libnl-3.so /lib/x86_64-linux-gnu/libnl.so
# make clean
# make eapol_test

2
在CentOS 6.8上执行以下命令: yum install libnl3-devel ln -s /usr/lib64/libnl-3.so /usr/lib64/libnl.so make clean make eapol_test - Dan-Dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接