Android 安卓NDK没有';你不支持头文件吗?

Android 安卓NDK没有';你不支持头文件吗?,android,c,android-ndk,Android,C,Android Ndk,本页包含编译iwlist和其他Android命令的说明: 不幸的是,我得到的错误类型与该页面上的评论者相同: 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的本地_SRC_文件中删除iwlib.h时,它没有显示该

本页包含编译iwlist和其他Android命令的说明:

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

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的本地_SRC_文件中删除iwlib.h时,它没有显示该警告,但仍然失败,并出现相同的错误:

./iwlist.c:633:7: error: 'IW_EV_LCP_PK2_LEN' undeclared (first use in this function)
这是未声明的,因为它位于其警告的iwlib.h文件中


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

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

为了构建库,您解压缩了gz文件,并运行了
make
,不是吗?或者您只是重命名了
wireless.22.h
?无论如何,在运行
ndk build
之前,包目录中有一个
wireless.h
文件。将以下两行添加到此文件末尾:

#undef IW_EV_LCP_PK_LEN
#undef IW_EV_POINT_PK_LEN
并从Android.mk的本地_SRC_文件中删除iwlib.h@Gabe是对的,头文件不应该单独编译。在iwlist.c中,您将看到第14行:

#include "iwlib.h"

好的,如何包含需要编译的重要常量的标题?我重命名了wireless.22.h,我不确定为什么它们有这么多版本的wireless#.h。为什么需要make,我假设链接页面上的命令就足够了?不,
make
不是必需的。。。我只是问您是如何生成./wireless.h文件的——一种可能的方法是运行
make
,但重命名也可以。(实际上,这两种方法都不好,因为你必须找到与你的Android目标相匹配的wireless.h版本,但这是另一个问题)太棒了,谢谢!首先,你是怎么做到的?取消定义这两个变量。。。编译器可以看到它们吗?另外,你有没有找到wireless.h的正确版本的技巧?Alex,我按照你的指示编译了文件,将它们移动到我的设备上,但它们不起作用-iwconfig和iwlist的输出都是unicode乱码。您是否已在android上成功编译并运行iwlist?你能分享二进制文件吗?不,我从来没有试过在Android上运行它;我相信如果你不给它特权,它是没用的。