#include <regex.h>这句代码显示有误
时间: 2023-09-11 10:10:58 浏览: 95
如果你在编译代码时出现了错误提示 `fatal error: regex.h: No such file or directory`,那么可能是因为你的编译环境没有包含正则表达式库。
正则表达式库通常包含在操作系统的开发包中,具体名称和安装方法可能因操作系统而异。以下是一些常见操作系统的正则表达式库名称和安装方法:
- 在 Ubuntu、Debian 上安装正则表达式库:`sudo apt-get install libregex-dev`
- 在 CentOS、RedHat 上安装正则表达式库:`sudo yum install -y glibc-devel`
- 在 macOS 上安装正则表达式库:`brew install gnu-sed`(安装 GNU sed 后,正则表达式库应该已经在系统中了)
如果你的操作系统不在上述列表中,可以尝试搜索该操作系统的正则表达式库名称。
相关问题
fatal error: linux/regex.h: No such file or directory #include <linux/regex.h>
这个错误是因为你的代码中包含了 `<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
```
这应该可以解决您的问题。