libnl,openssl,hostapd 交叉编译

。_饼干妹妹 提交于 2020-01-15 04:02:12

libnl-3.2.25 交叉编译

libnl-3.2.25 下载地址:

http://www.infradead.org/~tgr/libnl/

创建安装目录:

libnl-3.2.25$ mkdir __install

编译脚本build.sh:

libnl-3.2.25$ cat build.sh 
./configure CC=arm-linux-gnueabihf-gcc \
    --prefix=$(pwd)/__install \
    --host=arm-linux-gnueabihf \
    CFLAGS=-I/usr/include/libnl3
    
make && make install

执行编译脚本即可安装完成。

openssl-1.0.2r交叉编译

openssl source code 下载:

https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2r.tar.gz

创建安装目录:

openssl-1.0.2r$ mkdir __install

生成Makefile:

./config no-asm shared --prefix=$(pwd)/__install

编辑Makefile:

CROSS_COMPILE= arm-linux-gnueabihf-
CC= $(CROSS_COMPILE)gcc
CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -    O3 -Wall
DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNB    OUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TR    ACE -DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST -DOPENSSL_NO_WEAK_SSL_CIPHERS
PEX_LIBS=
EX_LIBS= -ldl
EXE_EXT=
ARFLAGS=
AR= $(CROSS_COMPILE)ar $(ARFLAGS) r
RANLIB= $(CROSS_COMPILE)ranlib
RC= $(CROSS_COMPILE)windres
NM= $(CROSS_COMPILE)nm
PERL= /usr/bin/perl
TAR= tar
TARFLAGS= --no-recursion
MAKEDEPPROG=makedepend
LIBDIR=lib
SHARED_LDFLAGS=

NOTE:去掉CFLAG参数中的 -m64 ,SHARED_LDFLAGS参数中的 -m64

编译安装:

openssl-1.0.2r$ make && make install 

hostapd-2.8 交叉编译

hostapd source code下载:

git clone git://w1.fi/srv/git/hostap.git
  1. 进入hostapd目录将 defconfig文件拷贝为 .config文件
 hostapd$ cp defconfig .config
  1. 编辑.config文件,本人此次重新编译hostapd的目的在于希望支持80211ac的配置,找到.config文件中的 CONFIG_IEEE80211AC=y 并打开:
 # IEEE 802.11ac (Very High Throughput) support
 CONFIG_IEEE80211AC=y
  1. 执行make指令进行编译。

可能遇到如下错误:

Package libnl-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnl-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnl-3.0' found

意思是需要将libnl-3.0.pc所在目录添加到PKG_CONFIG_PATH变量中
查找libnl-3.0.pc文件的位置:

$ sudo find / -name "libnl-3.0.pc"
/home/workspace/tool/libnl-3.2.25/__install/lib/pkgconfig/libnl-3.0.pc

添加进环境变量:

export PKG_CONFIG_PATH=/home/workspace/tool/libnl-3.2.25/__install/lib/pkgconfig/libnl-3.0.pc

再次进行上面的第三步编译。

如遇到如下问题:

../src/drivers/driver_nl80211.c:17:10: fatal error: netlink/genl/genl.h: 没有那个文件或目录
 #include <netlink/genl/genl.h>
 
compilation terminated.
Makefile:1264: recipe for target '../src/drivers/driver_nl80211.o' failed
make: *** [../src/drivers/driver_nl80211.o] Error 1

这时需要使用命令来安装需要的支持库头文件:

$ sudo apt-get install libnl-3-dev 

再次make编译将成功生成 hostapdhostapd_cli 应用程序

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!