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的更多相关文章

  1. 编译cuda Examples 时出现错误:/bin/ld cannot find -lglut

    编译cuda Examples 时出现错误:/bin/ld cannot find -lglut ,可以先找找是否缺少库,有时候可能是symbolic link不正确,没有链接到正确位置,导致找不到库 ...

  2. 【转】链接任意目录下库文件(解决错误“/usr/bin/ld: cannot find -lxxx”

    netbeans构建项目也出现了同样的问题.猜测是netbeans内部就用的是-l 这种编译方式,所以需要把***.a手动改为lib***.a 原文地址:链接任意目录下库文件(解决错误“/usr/bi ...

  3. 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 ...

  4. make -f dc_debug.mak 提示错误"/usr/bin/ld:can not find -l***"解决办法

    在公司不同服务器上"make -f ***"程序的时候,有的服务器可以编译通过,有的却提示"/usr/bin/ld:can not find -l***"的错误 ...

  5. 编译错误 ----- /usr/bin/ld: cannot find -lc

    yum install glibc-static glib-static是Gcc链接时使用到的库.

  6. NTP服务编译安装报错:/usr/bin/ld: cannot find –lcap

    [root@localhost local]# find / -name "*libcap.so*" [root@localhost ntp-4.2.8p13]# cd /usr/ ...

  7. 编译错误:/usr/bin/ld: cannot find -lz

    编译时出现错误/usr/bin/ld: cannot find -lz,安装zlib和zlib-devel yum install zlib yum install zlib-devel

  8. usr/bin/ld: cannot find 错误解决方法

    参考:http://blog.siyebocai.cn/20100324_5p424qs7.html 通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因 ...

  9. usr/bin/ld: cannot find 错误解决方法和 /etc/ld.so.conf

    我makefile出现这个错误: HelloWorldServer.c:(.text+0xaa): undefined reference to `zmq_send'collect2: error: ...

随机推荐

  1. 转--ES6 Promise 用法讲解

    Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法. 那就new一个 var p = new Promise( ...

  2. 基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控

    前言 随着互联网的发展,尤其是移动互联网,基于H5.微信的应用越来越多,企业也更多地想基于H5.微信公众号来快速开发和运营自己的产品,那么传统的安防IPC所输出的各种RTSP.GB28181.SDK视 ...

  3. 理解Scala中的Extractor

    引言 最近抱着<Programming in Scala>(英文第二版)在死啃Scala.在阅读第26章Extractor时,偶然在Stack Overflow上搜到一个帖子<Sca ...

  4. I.MX6 Linux eGTouch TouchScreen porting

    I.MX6 Linux eGTouch TouchScreen porting 一.Download Driver: http://www.eeti.com.tw/drivers_Linux.html ...

  5. 快速排序的partition版本实现

    int partition(int arr[], int low, int high) { int pivot = arr[high]; int i = low-1; for (int j = low ...

  6. Eclipse中注释方法操作(两种)

    Eclipse 中的两种注释方法:(1)多行注释 /* */ (2)单行注释 // 多行注释操作方法. 选中注释部分-菜单栏右上角 source: Add block comment.必须选中需要注释 ...

  7. BZOJ4689 Find the Outlier 【高斯消元】*

    BZOJ4689 Find the Outlier Description Abacus教授刚刚完成了一个制作数表的计算引擎的设计.它被设计用于同时计算一个多项式在许多点的取值.例如对于多项式 f(x ...

  8. 船长带你看书——《selenium2 python 自动化测试实战》(1)

    有很多selenium的教程,你没有从头看,当你看的时候已经很难跟上作者的节奏了.现在,你有机会再从头学一次了.从今天开始,船长会从最基本的知识开始,和大家一起学selenium.能不能跟着一起就看大 ...

  9. vb编写串口调试程序

    sub是子模块,可以调用但是没有返回值,function是有返回值的. public sub 可以在其它form里调用,而private sub 只能在当前form里调用. vb里的if else , ...

  10. numpy 的三角函数运算

    numpy 的三角函数运算 cos, cosh, sin sinh, tan, tanh regular 和 hyperbolic 三角函数 arccos, arccosh, arcsin, arcs ...