wpa_supplicant 的编译依赖 libnl 库、libssl库,因此需要先编译这两个库。
1 libssl编译
1.1下载
下载链接:https://www.openssl.org/source/
下载文件openssl-1.0.2r.tar.gz
1.2编译
解压文件,进入主目录,使用如下命令编译
#mkdir _install
#./config no-asm shared --prefix=$PWD/_install --cross-compile-prefix=arm-himix100-linux-
#make CC=arm-himix100-linux-gcc
#make insatll
_install为相关库的存放路径
arm-himix100-linux- 为交叉编译工具链
注意,在编译过程中,如果出现如下错误:
arm-himix100-linux-gcc: error: unrecognized command line option ‘-m64’
则需要打开Makefile 查找里面的 ‘-m64’,并将其删除即可
2 libnl编译
2.1 下载
下载链接:
http://www.linuxfromscratch.org/blfs/view/svn/basicnet/libnl.html
下载当前最新包libnl-3.4.0.tar.gz
2.2 编译
解压进入主目录,使用如下命令编译:
#mkdir _install
#./configure --host=arm-himix100-linux --prefix=$PWD/_install
#make
#make install
_install为相关库的存放路径
arm-himix100-linux- 为交叉编译工具链
3 wpa_supplicant
3.1 下载
下载链接:http://w1.fi/releases/
下载当前最新包wpa_supplicant-2.8.tar.gz
3.2 编译
解压并进入主目录
使用如下命令编译
#cd wpa_supplicant/
#cp defconfig .config
在Makefile中添加libssl和libnl的路径,如下:
CFLAGS += -I/home/openssl-1.0.2r/_install/include
LIBS += -L/home/openssl-1.0.2r/_install/lib
CFLAGS += -I/home/libnl-3.4.0/_install/include/libnl3
LIBS += -L/home/libnl-3.4.0/_install/lib
路径要根据自己的实际路径填写
#make CC=arm-himix100-linux-gcc
编译成功后便生成了工具wpa_supplicant和wpa_cli
上面生成的可执行文件为动态链接的,若要想静态链接,在Makefile中找到对应的编译选项加上-static字段即可,如下:
wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
$(Q)$(LDO) --static $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) -lm -lpthread
@$(E) " LD " $@
wpa_cli: $(OBJS_c)
$(Q)$(LDO) -static $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
@$(E) " LD " $@