fatal error: linux/regex.h: No such file or directory #include <linux/regex.h>
时间: 2024-01-01 13:04:26 浏览: 142
这个错误是因为你的代码中包含了 `<linux/regex.h>` 头文件,但是该头文件在你的系统中不存在。
`<linux/regex.h>` 是 Linux 内核中的正则表达式头文件,而不是标准 C 库的一部分。如果你想使用正则表达式,可以使用标准 C 库中的 `<regex.h>` 头文件,它提供了与 POSIX.2 标准兼容的正则表达式功能。
如果你确实需要使用 `<linux/regex.h>` 头文件,那么你需要检查你的系统是否支持该头文件。如果你使用的是 Linux 系统,可能需要安装相应的开发包,以便获取该头文件。如果你正在使用其他操作系统,则需要查找类似于 `<linux/regex.h>` 的头文件或库,并将其添加到你的项目中。
相关问题
centos7中编写的内核模块代码,make报错fatal error: linux/regex.h: No such file or directory #include <linux/regex.h>
在 CentOS 7 中,`linux/regex.h` 文件已经被移除了,所以您需要修改您的代码,使用标准的 C 库 `regex.h` 替代。
您需要将 `#include <linux/regex.h>` 修改为 `#include <regex.h>`,并且将所有的 `regmatch_t` 修改为 `regmatch_t`。这样应该可以解决您的问题。
如果您需要使用 Linux 特有的正则表达式扩展,可以使用 POSIX 扩展来替代。您可以将 `#include <linux/regex.h>` 修改为 `#include <regex.h>`,并在编译时添加 `-D_GNU_SOURCE` 选项,以启用 POSIX 扩展。
例如,您的 Makefile 可能需要添加以下内容:
```makefile
CFLAGS += -D_GNU_SOURCE
```
这应该可以解决您的问题。
/home/dyc/Desktop/Test5/mymodule/Plus/message.c:10:25: fatal error: linux/regex.h: No such file or directory #include <linux/regex.h>
这个错误提示是因为编译器找不到 `linux/regex.h` 头文件。这个头文件通常是在 Linux 内核中用于正则表达式的。
如果您是在 Linux 系统上编译代码,请尝试将 `#include <linux/regex.h>` 改为 `#include <regex.h>`,因为 Linux 系统中的正则表达式头文件通常不在 `linux/` 目录下。
如果您确实需要使用 `linux/regex.h` 头文件,那么可能需要安装相应的 Linux 内核头文件包。您可以使用以下命令安装:
```
sudo apt-get install linux-headers-$(uname -r)
```
如果您使用的是其他 Linux 发行版,请使用相应的包管理器来安装内核头文件包。