- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为 Kali linux 2.0 安装我的 Alfa AWUS036ACH 适配器
我已经修复了之前的错误,但现在我被困在这里了。这是错误我正在接收。
os_dep/linux/rtw_android.c:345:3: error: implicit declaration of function ‘strnicmp’ [-Werror=implicit-function-declaration] if(0 == strnicmp(cmdstr , android_wifi_cmd_str[cmd_num], strlen(android_wifi_cmd_str[cmd_num])) ) ^
我的编码技能没有达到标准,我仍在学习中,因此我们将不胜感激。
具体代码如下:
int rtw_android_cmdstr_to_num(char *cmdstr)
{
int cmd_num;
for(cmd_num=0 ; cmd_num<ANDROID_WIFI_CMD_MAX; cmd_num++)
if(0 == strnicmp(cmdstr , android_wifi_cmd_str[cmd_num], strlen(android_wifi_cmd_str[cmd_num])) )
break;
return cmd_num;
}
我看了其他人对其他问题的回答,我不确定这段代码应该如何调整。
最佳答案
部分回答你的问题:
Kali Linux 2.0 基于 Debian Jessie,带有 Linux 4.x 内核。
在最近的 Linux 版本中,系统调用 strnicmp
已被弃用并替换为包装器,以允许稍后删除,以支持 strncasecmp
。另见 this commit log .
了解您的系统是否支持这些调用的一种方法是在内核符号表中查找它们的名称,该表包含名称和它们的内存位置。此符号表通常由名为 System.map
的文件表示,位于 /boot/
中。
Linux 2.6.32 的示例:
$ grep -e strnicmp -e strncasecmp /boot/System.map-2.6.32
ffffffff81298450 T strnicmp
ffffffff81298540 T strncasecmp
ffffffff8183a680 r __ksymtab_strncasecmp
ffffffff8183a6a0 r __ksymtab_strnicmp
ffffffff8184e0d0 r __kcrctab_strncasecmp
ffffffff8184e0e0 r __kcrctab_strnicmp
ffffffff81861153 r __kstrtab_strncasecmp
ffffffff8186116a r __kstrtab_strnicmp
Linux 4.4.6 的示例:
$ grep -e strnicmp -e strncasecmp /boot/System.map-4.4.6
ffffffff813aaee0 T strncasecmp
ffffffff81b484a0 R __ksymtab_strncasecmp
ffffffff81b608c8 r __kcrctab_strncasecmp
ffffffff81b776e4 r __kstrtab_strncasecmp
要在不回归的情况下解决您的问题,必须将反射(reflect)重命名的子句添加到代码中,在本例中为 rtw_android.c
。
Linux 版本 4.0.0 的差异示例:
diff -urN os_dep.orig/linux/rtw_android.c os_dep/linux/rtw_android.c
--- os_dep.orig/linux/rtw_android.c 2016-03-29 13:53:46.657398453 +0200
+++ os_dep/linux/rtw_android.c 2016-03-29 13:26:13.871323615 +0200
@@ -30,6 +30,10 @@
#endif
#endif /* defined(RTW_ENABLE_WIFI_CONTROL_FUNC) */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0))
+#define strnicmp strncasecmp
+#endif
+
const char *android_wifi_cmd_str[ANDROID_WIFI_CMD_MAX] = {
"START",
关于c++ - rtw_android.c 错误 : implicit declaration of function ‘strnicmp’ [-Werror=implicit-function-declaration],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34702202/
我正在尝试学习这门类(class) ( https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-s096-e
这是一个 android 项目,当我决定在运行 javac 程序时将警告视为错误时,我的 ant 构建脚本有时会失败。说真的,它只是有时会这样做,这是我可能会问的另一个问题。 它将打印错误并突然取消构
如何在 Linux 中抑制 -Werror=pointer-to-int-cast 和 -Werror=address 类错误? 我知道下面是用于抑制上述错误的选项。 -Wno-error=addre
构建时出现以下错误: ...has undefined behavior [-Werror,-Wundefined-reinterpret-cast] Bazel 构建完全停止,因为 clang (l
我正在尝试将我的工作代码从 Mac OS X 移植到 GNU/Linux。 我使用的是 qsort_r,其原型(prototype)在 FreeBSD 和 GNU/Linux 上是不同的。 因此,我将
一般来说,标志位-Werror就是让所有的警告都变成错误。但它并不总是相同的。 int j; int main() { int i = 10; return 0; } 如果我输入g++
// set all values in the hash table to null for(int i = 0; i < HASH_SIZE; i++) { hashtable[i] =
我有以下测试代码 test.c : #include int *func() { int i = 123; return &i; } int main() { printf("
我正在使用模块来处理依赖项的服务器上远程工作。我正在尝试安装 dssp (https://github.com/cmbi/dssp)。在 github 上可以看到依赖项。 我加载的模块是: Curre
我正在尝试调用这个函数 static inline void insert(Buffer *buf, double f, size_t index) { insert_64(buf, *(uin
(第 43-56 行)我正在尝试为 pset 5 实现加载函数。我创建了一个嵌套的 while 循环,第一个循环迭代直到文件末尾,另一个循环迭代直到每个单词结束。我创建了 char *c 来存储我从字
目前我正在使用此命令在 Mint 中编译我的 .c 文件 gcc -std=gnu99 -Wall -Werror filename.c -o filename [-lm] 如何将这些参数设为默认值,
自学 C++ 并处理我在本地 Barnes and Noble 挑选的一本书中的示例。 “Marc Greggoire 的专业 C++”。我没有意识到这本书是为那些比我经验多一点的人准备的,但我一直在
我在功能方面遇到了一个小问题。我相信这可能是因为我没有正确使用它们。我的代码如下: int duration(string fraction) { // X part of the fract
如果 cc 配置设置为使用 -Werror 是否有办法在使用 make 时从终端覆盖 -Werror 标志? 最佳答案 您可以在调用 make 时设置标志: CFLAGS=-Wno-error mak
我想从源代码构建 nginx。所以我写了一个 bash 脚本来做到这一点: #!/bin/bash export LD_LIBRARY_PATH="/usr/lib64:$LD_LIBRARY_PAT
这是源文件 get.c 的内容: #include int main(){ //int i = 0; char b[10]; gets(b); puts(b); return 0
在使用 Makefile 制作项目时,出现此错误: error: implicit declaration of function ‘fatal’ [-Werror=implicit-function
禁止将特定警告视为GCC错误的正确标志或标志顺序是什么?我想为-Wimplicit-interface做到这一点。 >cat test.f90 call s end > gfortran -c -W
我正在尝试安装 nano-hmac-0.2.0使用 Cabal 和 GHC 6.12.1 从 Hackage 中下载包(我想要的包的依赖项),但失败并出现以下错误: Data/Digest/OpenS
我是一名优秀的程序员,十分优秀!