0%

编译 Linux 模块出错

开发 Linux Modules 时编译出错,某些头文件找不到

Linux Modules 编译时出现错误

a.c:123:2: error: implicit declaration of function ‘memset’ [-Werror=implicit-function-declaration]

添加头文件 #include <string.h>#include "string.h" 错误变成

b.c:3:20: fatal error: string.h: No such file or directory
 #include <string.h>
                    ^
compilation terminated.

继续修改为 #include <linux/string.h> 解决问题

Modules 编译时 <> 指定的头文件会从 KERNEL PATH 中找,并不是在编译工具链中搜索

../4.0.0/include > fd string.h
asm-generic/string.h
linux/string.h
linux/string_helpers.h
linux/ucs2_string.h
uapi/linux/netfilter/xt_string.h
uapi/linux/string.h

因此需要添加 #include <linux/string.h>