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.h
和sys/shm.h
不一样。 linux/shm.h
由 Linux 内核提供,不打算供 普通 开发人员使用。
在你的问题中,你没有指定你正在尝试编译内核模块。
用户 space 库(和用户 space 函数)在内核中不可用。这就是您不能包含用户 space headers 的原因。您只需使用内核提供的功能进行开发。
当我尝试包含系统模块(例如 #include <sys/shm.h>
)时出现以下错误:没有这样的文件或目录。在互联网上找不到任何有效的解决方案。
使用的语言是C.
glibc
headers 肯定没有安装(你可能只是安装了 gcc
而没有 glibc
headers)。
如果您 运行 Ubuntu/Debian,此命令应该可以解决您的问题:
sudo apt-get install libc-dev
注意:linux/shm.h
和sys/shm.h
不一样。 linux/shm.h
由 Linux 内核提供,不打算供 普通 开发人员使用。
在你的问题中,你没有指定你正在尝试编译内核模块。
用户 space 库(和用户 space 函数)在内核中不可用。这就是您不能包含用户 space headers 的原因。您只需使用内核提供的功能进行开发。