包括Linux标头返回没有这样的文件或目录

时间:2017-11-28 09:27:49

标签: c linux header kernel header-files

我正在尝试编写一个C代码,它将利用Linux内核中的内存信息(进程的虚拟地址空间,进程的状态和此类信息。)

我需要包含以下标题才能获得这些信息。

#include<linux/init.h>
#include<linux/module.h>
#include<linux/mm.h>

实际文件存在于linux文件夹下,但是当使用gcc编译文件时,它会返回

  

没有这样的文件或目录

有人可以解释为什么我收到此错误!我该怎么办?

  • 我已经编译了内核并安装了所有可用的更新(内核版本3.16.0)

1 个答案:

答案 0 :(得分:0)

你问题的答案。

使用kernel-devel

安装缺少的包apt-get

注意:我已经提到apt安装包,您可以使用系统支持的功能,例如yum

如果您无法安装kernel-devel,那么您可以尝试安装通用Linux标头。

sudo apt-get update && sudo apt-get install linux-headers-`uname -r`

然后,您可以使用locate实用程序

检查init.h或module.h的位置

然后使用-I标志在编译中添加路径。

gcc -g your_file.c -I/usr/path/of/the/kernel/header/include