编译hostapd时,出现错误:/usr/bin/ld: cannot find -lnl
book@ubuntu:/work/project/wifi/04.hostapd/hostapd-2.0/hostapd$ make
/usr/bin/ld: cannot find -lnl
collect2: ld returned 1 exit status
make: *** [hostapd] Error 1
问题原因是,没有找到 nl 库 !
然后我搜索 这个 nl 库是在哪儿被使用的:
book@ubuntu:/work/project/wifi/04.hostapd/hostapd-2.0$ grep "\-lnl" * -nR
src/drivers/drivers.mak:31: DRV_LIBS += -lnl-3
src/drivers/drivers.mak:32: DRV_LIBS += -lnl-genl-3
src/drivers/drivers.mak:36: DRV_LIBS += -lnl-tiny
src/drivers/drivers.mak:38: DRV_LIBS += -lnl
src/drivers/drivers.mak:42: DRV_LIBS += -lnl-genl
src/drivers/drivers.mak:148: DRV_LIBS += -lnl-3
src/drivers/drivers.mak:149: DRV_LIBS += -lnl-genl-3
src/drivers/drivers.mak:150: DRV_LIBS += -lnl-route-3
src/drivers/drivers.mak:154: DRV_LIBS += -lnl-tiny
src/drivers/drivers.mak:156: DRV_LIBS += -lnl
src/drivers/drivers.mak:160: DRV_LIBS += -lnl-genl
src/drivers/drivers.mak:161: DRV_LIBS += -lnl-route
src/drivers/drivers.mk:31: DRV_LIBS += -lnl-3
src/drivers/drivers.mk:32: DRV_LIBS += -lnl-genl-3
src/drivers/drivers.mk:36: DRV_LIBS += -lnl-tiny
src/drivers/drivers.mk:38: DRV_LIBS += -lnl
src/drivers/drivers.mk:42: DRV_LIBS += -lnl-genl
src/drivers/drivers.mk:152: DRV_LIBS += -lnl-3
src/drivers/drivers.mk:153: DRV_LIBS += -lnl-genl-3
src/drivers/drivers.mk:154: DRV_LIBS += -lnl-route-3
src/drivers/drivers.mk:158: DRV_LIBS += -lnl-tiny
src/drivers/drivers.mk:160: DRV_LIBS += -lnl
src/drivers/drivers.mk:164: DRV_LIBS += -lnl-genl
src/drivers/drivers.mk:165: DRV_LIBS += -lnl-route
然后,我们查看交叉编译库里 有没有 nl 的库
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
然后,发现里面有这个库。
book@ubuntu:/work/project/wifi/04.hostapd/hostapd-2.0$ ls /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
engines libnl libnsl.so.1
jconfig.h libnl-3.a libnss_compat-2.8.so
jerror.h libnl-3.la libnss_compat.so.2
jmorecfg.h libnl-3.so libnss_dns-2.8.so
jpeglib.h libnl-3.so.200 libnss_dns.so.2
ld-2.8.so libnl-3.so.200.18.0 libnss_files-2.8.so
ld-linux.so.3 libnl-cli-3.a libnss_files.so.2
libanl-2.8.so libnl-cli-3.la libnss_hesiod-2.8.so
libanl.so.1 libnl-cli-3.so libnss_hesiod.so.2
libBrokenLocale-2.8.so libnl-cli-3.so.200 libnss_nis-2.8.so
libBrokenLocale.so.1 libnl-cli-3.so.200.18.0 libnss_nisplus-2.8.so
libc-2.8.so libnl-genl-3.a libnss_nisplus.so.2
libcidn-2.8.so libnl-genl-3.la libnss_nis.so.2
libcidn.so.1 libnl-genl-3.so libpcprofile.so
libcrypt-2.8.so libnl-genl-3.so.200 libpthread-2.8.so
libcrypto.a libnl-genl-3.so.200.18.0 libpthread.so.0
libcrypto.so libnl-idiag-3.a libresolv-2.8.so
libcrypto.so.1.0.0 libnl-idiag-3.la libresolv.so.2
libcrypt.so.1 libnl-idiag-3.so librt-2.8.so
libc.so.6 libnl-idiag-3.so.200 librt.so.1
libdl-2.8.so libnl-idiag-3.so.200.18.0 libSegFault.so
libdl.so.2 libnl-nf-3.a libssl.a
libfreetype.a libnl-nf-3.la libssl.so
libfreetype.la libnl-nf-3.so libssl.so.1.0.0
libfreetype.so libnl-nf-3.so.200 libthread_db-1.0.so
libfreetype.so.6 libnl-nf-3.so.200.18.0 libthread_db.so.1
libfreetype.so.6.9.0 libnl-route-3.a libutil-2.8.so
libgcc_s.so libnl-route-3.la libutil.so.1
libgcc_s.so.1 libnl-route-3.so libz.a
libm-2.8.so libnl-route-3.so.200 pkgconfig
libmemusage.so libnl-route-3.so.200.18.0 turbojpeg.h
libm.so.6 libnsl-2.8.so
那么原因就出在 src/drivers/drivers.mak 里了! 肯定是编译时,-lnl-3 库没有包含进来。
然后,打开这个文件。
vi src/drivers/drivers.mk +31
发现下面这几句。
ifdef CONFIG_LIBNL32
DRV_LIBS += -lnl-3
DRV_LIBS += -lnl-genl-3
DRV_CFLAGS += -DCONFIG_LIBNL20 -I/usr/include/libnl3
那么我们只需要,在配置文件.config里,加 CONFIG_LIBNL32 = y 就可以了。
编译hostapd时,出现错误:/usr/bin/ld: cannot find -lnl的更多相关文章
- 编译cuda Examples 时出现错误:/bin/ld cannot find -lglut
编译cuda Examples 时出现错误:/bin/ld cannot find -lglut ,可以先找找是否缺少库,有时候可能是symbolic link不正确,没有链接到正确位置,导致找不到库 ...
- 【转】链接任意目录下库文件(解决错误“/usr/bin/ld: cannot find -lxxx”
netbeans构建项目也出现了同样的问题.猜测是netbeans内部就用的是-l 这种编译方式,所以需要把***.a手动改为lib***.a 原文地址:链接任意目录下库文件(解决错误“/usr/bi ...
- android编译错误--/usr/bin/ld: cannot find -lz
编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when se ...
- make -f dc_debug.mak 提示错误"/usr/bin/ld:can not find -l***"解决办法
在公司不同服务器上"make -f ***"程序的时候,有的服务器可以编译通过,有的却提示"/usr/bin/ld:can not find -l***"的错误 ...
- 编译错误 ----- /usr/bin/ld: cannot find -lc
yum install glibc-static glib-static是Gcc链接时使用到的库.
- NTP服务编译安装报错:/usr/bin/ld: cannot find –lcap
[root@localhost local]# find / -name "*libcap.so*" [root@localhost ntp-4.2.8p13]# cd /usr/ ...
- 编译错误:/usr/bin/ld: cannot find -lz
编译时出现错误/usr/bin/ld: cannot find -lz,安装zlib和zlib-devel yum install zlib yum install zlib-devel
- usr/bin/ld: cannot find 错误解决方法
参考:http://blog.siyebocai.cn/20100324_5p424qs7.html 通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因 ...
- usr/bin/ld: cannot find 错误解决方法和 /etc/ld.so.conf
我makefile出现这个错误: HelloWorldServer.c:(.text+0xaa): undefined reference to `zmq_send'collect2: error: ...
随机推荐
- Mysql数据库的增删改查
在运行程序之前需要在mysql数据库中创建test数据库,如下图所示: 下面是具体是实现程序: package News; import java.sql.Connection; import jav ...
- d3.js入门之DOM操作
上篇成功在vue项目中把d3跑起来了,接下来对d3的基本操作做个汇总: 一.d3元素选择器 d3.select(".skill"):选择第一个类名为skill的元素并返回这个元素对 ...
- React-Native进阶_5.导航 Naviagtion
有这样一个组件 他可以控制页面跳转 返回,在移动端叫做导航控制器, 在RN中叫路由 我们使用的 react-native-navigation 是一个开源组件库介绍:A complete nativ ...
- Java 代码规范,你应该知道的一些工具和用法
从事编程这个行业,你一定被别人说过或者说过别人这句话:代码要规范!求职面试时也能从 JD 上看到这个要求:要有良好的编程习惯.其实都是在讲代码规范(Code Style)这件事情. 每个人都有自己的编 ...
- 密钥库文件格式[keystore]代码
密钥库文件格式[keystore]代码 格式 : JKS 扩展名 : .jks/.ks 描述 : [Java Keystore]密钥库的Java实现版本,pro ...
- iOS怎么来实现关闭自动锁屏
怎么来设置[UIApplication sharedApplication] idleTimerDisabled 属性来控制自动锁屏的效果 // 把设置idleTimerDisabled的代码放到 ...
- couldn't import dot_parser
这个错误,你不要信它,实际可以画图了.害我又降级安装,真是气死了.
- JavaScript HTML Handlebars Template
/********************************************************************* * JavaScript HTML Handlebars ...
- vuex秘籍
vue项目开发中,大型项目一般vuex所需要存储的状态一般都很都,这时,我们便需要进性模块化划分,然后 再页面中采用映射来实现state的调用: 目录一般如下: store为总的状态库存放文件. mo ...
- phpcms打印数据
<?php echo '<pre>'; var_dump($data); echo '</pre>'; ?>