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
- 进入hostapd目录将 defconfig文件拷贝为 .config文件
hostapd$ cp defconfig .config
- 编辑.config文件,本人此次重新编译hostapd的目的在于希望支持80211ac的配置,找到.config文件中的 CONFIG_IEEE80211AC=y 并打开:
# IEEE 802.11ac (Very High Throughput) support
CONFIG_IEEE80211AC=y
- 执行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编译将成功生成 hostapd 和 hostapd_cli 应用程序