Linux,不能包含系统模块

Linux, can't include sys modules

当我尝试包含系统模块(例如 #include <sys/shm.h>)时出现以下错误:没有这样的文件或目录。在互联网上找不到任何有效的解决方案。 使用的语言是C.

glibc headers 肯定没有安装(你可能只是安装了 gcc 而没有 glibc headers)。

如果您 运行 Ubuntu/Debian,此命令应该可以解决您的问题:

sudo apt-get install libc-dev

注意:linux/shm.hsys/shm.h不一样。 linux/shm.h 由 Linux 内核提供,不打算供 普通 开发人员使用。

在你的问题中,你没有指定你正在尝试编译内核模块。

用户 space 库(和用户 space 函数)在内核中不可用。这就是您不能包含用户 space headers 的原因。您只需使用内核提供的功能进行开发。