我正在尝试编写一个C代码,它将利用Linux内核中的内存信息(进程的虚拟地址空间,进程的状态和此类信息。)
我需要包含以下标题才能获得这些信息。
#include<linux/init.h>
#include<linux/module.h>
#include<linux/mm.h>
实际文件存在于linux文件夹下,但是当使用gcc编译文件时,它会返回
没有这样的文件或目录
有人可以解释为什么我收到此错误!我该怎么办?
答案 0 :(得分:0)
你问题的答案。
使用kernel-devel
apt-get
注意:我已经提到apt
安装包,您可以使用系统支持的功能,例如yum
。
如果您无法安装kernel-devel,那么您可以尝试安装通用Linux标头。
sudo apt-get update && sudo apt-get install linux-headers-`uname -r`
然后,您可以使用locate
实用程序
然后使用-I
标志在编译中添加路径。
gcc -g your_file.c -I/usr/path/of/the/kernel/header/include