【发布时间】:2017-11-28 17:51:15
【问题描述】:
我正在尝试编写一个 C 代码,它将利用 Linux 内核中的内存信息(进程的虚拟地址空间、进程的状态等信息。)
我需要包含以下标题才能获取这些信息。
#include<linux/init.h>
#include<linux/module.h>
#include<linux/mm.h>
实际文件存在于 linux 文件夹下,但是使用 gcc 编译文件时会返回该文件
没有这样的文件或目录
有人可以解释为什么我会收到这个错误!我该怎么办?
- 我已经编译了内核并安装了所有可用的更新(内核版本 3.16.0)
【问题讨论】:
-
如果没有使用
apt get安装,您是否安装了linux-headers-3.16.0?另一种选择是找到那些头文件路径并在您使用-I标志编译gcc时包含相对路径。 -
实际文件存在于 linux 文件夹下 编译器在
/usr/include/linux中查找,但在那里找不到。也许它在其他地方?尝试添加-I [path to (parent of) linux folder]以便编译器知道在哪里查找! -
我安装了标头,使用
gcc -I编译,现在我收到此错误fatal error: uapi/linux/stddef.h: No such file or directory #include <uapi/linux/stddef.h>,而我的代码中没有包含这样的标头
标签: c linux header kernel header-files