交叉编译hostapd

交叉编译hostapd

下载hostapd并解压

cd hostapd
cp defconfig .config
vi .config 
    CONFIG_DRIVER_NL80211=y
    CFLAGS += -I/home/jieen/myworks/third/wifi/build/libnl/include/libnnl3
    LIBS += -L/home/jieen/myworks/third/wifi/build/libnl/lib
    CFLAGS += -I/home/jieen/broadcom/bcm7581/kernel/stblinux-2.6.37/include
    LIBS += -L/home/jieen/broadcom/bcm7581/kernel/stblinux-2.6.37/lib
    CC=mipsel-linux-gcc
make

先交叉编译linnl
./configure CC=mipsel-linux-gcc --prefix=/home/jieen/opt/wifi/mipsel/build/libnl --host=mips
make 
make install

openssl/ssl.h: No such file or directory
OK.准备openssl,并交叉编译
./config no-sse2 no-asm shared --prefix=/home/jieen/myworks/third/wifi/build/openssl
vi Makefile
CC= mipsel-linux-gcc
AR= mipsel-linux-ar $(ARFLAGS) r
RANLIB= mipsel-linux-ranlib

make
make install
cd hostapd
vi .config
CFLAGS += -I/home/jieen/myworks/third/wifi/build/openssl/include
LIBS += -L/home/jieen/myworks/third/wifi/build/openssl/lib


注意五点:
1.libnl不要用最新的,我最开始用最新的libnl-3.2.14,总是在driver_nl80211.c文件中出现
 undefined reference to `genlmsg_attrdata'
 undefined reference to `genlmsg_attrlen'
等错误,后换成libnl-1.1,交叉编译后解决
2.hostapd用git获取的,不要直接下载hostapd-1.0.tar.gz包,因为可能会出现一大堆警告和
    driver_nl80211.c:95:9: error: too few arguments to function 'genl_ctrl_alloc_cache'
用git获取的未出现
3.出现bin/ld: skipping incompatible lib/libssl.so when searching for -lssl等问题,因为你没有交叉编译到,重新交叉编译并make install
  可以用file libssl.so.1.0.0查看下是否是mips
4.最终hostapd执行依赖以下三个库文件,根据不同版本可能库名字不同
    libcrypto.so.1.0.0
    libnl.so.1
    libssl.so.1.0.0
5.在设置编译选项时可以用以下方式:
    (1)    export PKG_CONFIG_PATH=
    (2)    直接在Makefile中添加CFLAGS和LIBS,在交叉编译时要注意交叉编译变量如:CC AR RUNLIB 等

总得来说,过程是曲折的,结果是喜悦的...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值