WPA Supplicant 在Windows下的编译

本文档详细介绍了如何在Windows环境下编译安装WinPcap、OpenSSL及WPASupplicant等网络相关组件。首先,指导下载并配置WinPcap;接着,针对OpenSSL的编译过程进行了详细说明,包括解决宏定义冲突的问题;最后,提供了WPASupplicant的下载与编译步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、下载WinPcap

下载WpdPack_4_0_2.zip,解压到C:\dev\WpdPack。


二、编译OpenSSL
1、    下载openssl-1.0.1e.tar.gz并解压。
2、    在\include\openssl\x509v3.h里添加:
  1. #ifdef OPENSSL_SYS_WIN32 
  2.     /* Under Win32 these are defined in wincrypt.h */ 
  3. #undef X509_NAME 
  4. #undef X509_CERT_PAIR 
  5. #undef X509_EXTENSIONS 
  6. #endif 
#ifdef OPENSSL_SYS_WIN32
    /* Under Win32 these are defined in wincrypt.h */
#undef X509_NAME
#undef X509_CERT_PAIR
#undef X509_EXTENSIONS
#endif
3、    安装ActivePerl
4、    打开VS命令提示行,进入OpenSSL路径,依次输入以下命令:
  1. perl Configure VC-WIN32 no-asm --prefix= C:\dev\OpenSSL 
  2. ms\do_ms 
  3. nmake -f ms\ntdll.mak 
  4. nmake -f ms\ntdll.mak install 
perl Configure VC-WIN32 no-asm --prefix= C:\dev\OpenSSL
ms\do_ms
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install


三、编译WPA Supplicant
1、    下载wpa_supplicant-0.7.3.tar.gz并解压。
2、    用VS2008打开vs2005\wpa_supplicant.sln,编译即可。

四、问题与解决
1、    OpenSSL的宏定义和VS的wincrypt.h的宏定义冲突,需要按上述方法取消宏定义。
2、    wpa_supplicant-2.0在Windows下编译有很多问题,用0.7.3版可以编译。
3、    VS2005在编译时会提示“调试信息损坏,请重新编译模块”,经查询是VS2005自身的bug(http://support.microsoft.com/kb/974193/zh-cn),改用VS2008可编译。

4、    将工程中需要用到libeay32MT.lib和 ssleay32MT.lib的地方,都换成libeay32.lib和ssleay32.lib

### 交叉编译环境准备 为了在Linux环境下成功完成`wpa_supplicant`的交叉编译工作,需先准备好宿主机操作系统以及目标平台的相关配置。宿主机选用的是Ubuntu18.04 x64版本,而目标平台则为Hi3516DV300芯片组。针对此特定硬件架构,所使用的交叉编译工具链为`arm-himix200-linux-gcc`[^1]。 ### 安装依赖库 由于`wpa_supplicant`依赖于多个外部库来实现其功能,在开始编译之前还需要安装这些必要的支持文件。具体来说,项目依赖于`libnl(1.1.4)`用于网络链接管理接口的支持;另外还需借助`openssl(1.1.0)`提供加密服务保障通信安全。 对于`libnl`库而言,可以从官方网站获取源码包并按照说明文档中的指导进行构建与安装操作[^3]: ```bash wget http://www.infradead.org/~tgr/libnl/files/libnl-1.1.4.tar.gz tar xf libnl-1.1.4.tar.gz cd libnl-1.1.4/ ./configure --host=arm-himix200-linux CC=arm-himix200-linux-gcc CXX=arm-himix200-linux-g++ make && make install DESTDIR=/path/to/installation/prefix ``` 注意替换上述命令中`DESTDIR`参数指向的实际路径为你希望保存交叉编译后的产物的位置。 ### 获取并解压WPA_Supplicant源代码 接下来下载指定版本(`v2.9`) 的`wpa_supplicant`压缩包,并将其放置在一个合适的工作目录内展开: ```bash mkdir ~/workspace && cd ~/workspace wget https://w1.fi/releases/wpa_supplicant-2.9.tar.gz tar -xvf wpa_supplicant-2.9.tar.gz cd wpa_supplicant-2.9/wpa_supplicant/ sudo chmod 777 -R . cp defconfig .config ``` 这里通过复制默认配置模板作为基础设置文件`.config`,后续可根据实际需求调整其中各项选项以适应不同应用场景的要求[^2]。 ### 配置交叉编译选项 编辑刚刚创建好的`.config` 文件,确保启用了适用于嵌入式系统的特性开关,同时指定了正确的交叉编译器前缀名以便能够调用到前面提到过的`arm-himix200-linux-gcc` 工具集 : ```diff CONFIG_DRIVER_NL80211=y + CONFIG_LIBNL20=y + CFLAGS += -I/path/to/libnl/include + LIBS += -L/path/to/libnl/lib CC=arm-himix200-linux-gcc LD=arm-himix200-linux-ld AR=arm-himix200-linux-ar ``` > **提示**: `/path/to/libnl/*` 应该被替换成上一步骤中定义的目标位置下的相应子目录名称。 ### 执行编译过程 一切就绪之后就可以运行Makefile来进行最终的产品组装了: ```bash make ``` 如果整个流程顺利无误的话,则会在当前文件夹下找到名为 `wpa_supplicant` 可执行程序以及其他辅助脚本等资源,它们已经过适配可以部署至基于ARM架构设计的小型计算机设备上了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值