2

此页面有为 Android 编译 iwlist 和其他命令的说明: https ://code.google.com/p/haggle/wiki/WirelessTools

不幸的是,我遇到了与该页面上的评论者相同类型的错误:

Android NDK: WARNING: Unsupported source file extensions in /home/simon/Android-SDK/wireless_tools.29/Android.mk for module iwlist Android NDK: iwlib.h

当我从 Android.mk 的 LOCAL_SRC_FILES 中删除 iwlib.h 时,它没有显示该警告,但它仍然失败并出现相同的错误:

./iwlist.c:633:7: error: 'IW_EV_LCP_PK2_LEN' undeclared (first use in this function)

这是未声明的,因为它位于警告的 iwlib.h 文件中。

那么为什么 Android NDK 不能识别头 .h 文件呢?

4

2 回答 2

3

您通常不编译头文件。您将它们包含在您编译的 .c 或 .cpp 文件中。但是您不会将它们作为源文件传递给编译器。

于 2013-02-09T06:06:47.557 回答
3

要构建库,您解压缩 gz 文件并运行make,不是吗?还是你干脆改名了wireless.22.h?无论如何,在你运行之前ndk-build,你在包目录中有一个wireless.h文件。将以下两行添加到此文件的末尾:

#undef IW_EV_LCP_PK_LEN
#undef IW_EV_POINT_PK_LEN

并从 Android.mk 的 LOCAL_SRC_FILES 中删除 iwlib.h。@Gabe 是对的,头文件不应该单独编译。在 iwlist.c 你会发现第 14 行:

#include "iwlib.h"
于 2013-02-09T06:53:22.683 回答