gpt4 book ai didi

linux - 内核模块构建失败 : sys/types. h: 没有这样的文件或目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:18:56 25 4
gpt4 key购买 nike

由于缺少 .h 文件,我无法构建内核模块。我正在 Ubuntu 14.04 上构建模块。

这是我使用的 make 文件:

$ cat Makefile 
obj-m += my_module.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

这是'make'的输出:

$ make
make -C /lib/modules/3.13.0-34-generic/build M=/home/user/location modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-34-generic'
CC [M] /home/user/location/my_module.o
/home/user/location/my_module.c:2:23: fatal error: sys/types.h: No such file or directory
#include <sys/types.h>
^
compilation terminated.

文件 sys/types.h 存在:

/usr/include/x86_64-linux-gnu/sys/types.h

包含它的测试程序编译:

$ cat test.c 
#include <sys/types.h>
#include <stdio.h>

int main()
{
printf ("test\n");
return 0;
}
$ gcc -o test test.c
$

我查看了几篇文章并确保我安装了 libc6-dev 和 build-essential。

有什么想法吗?

最佳答案

当您开发 Linux 内核模块时,您应该忘记标准 C 库 (Glibc) 的便利。相反,您将不得不使用 Kernel C。所以,你应该写

#include <linux/types.h>

它将解决问题。

关于linux - 内核模块构建失败 : sys/types. h: 没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25589407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com