帮助定位 linux/version.h

Ash*_*han 4 compiling c makefile make linux-headers

我正在尝试修复一个旧程序,我以前遇到的问题可以在Missing modversions.h 中找到

当我make程序时,它给了我以下错误,

kaodv-mod.c:22:27: fatal error: linux/version.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

所以我跑了

find / -name version.h
Run Code Online (Sandbox Code Playgroud)

返回

/opt/VBoxGuestAdditions-4.3.2/src/vboxguest-4.3.2/vboxguest/include/VBox/version.h
/usr/include/linux/dvb/version.h
/usr/include/linux/version.h
/usr/src/linux-headers-3.8.0-29-generic/include/config/arch/want/ipc/parse/version.h
/usr/src/linux-headers-3.8.0-29-generic/include/generated/uapi/linux/version.h
/usr/src/linux-headers-3.8.0-29/include/uapi/linux/dvb/version.h
/usr/src/linux-headers-3.8.0-29/include/xen/interface/version.h
Run Code Online (Sandbox Code Playgroud)

这清楚地证明linux/version.h存在

为了解决这个问题,我应该改变

kaodv-mod.c:22:27: fatal error: linux/version.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

进入

#include</usr/include/linux/version.h>
Run Code Online (Sandbox Code Playgroud)

或者是否可以对 Makefile 进行更改

PS:生成文件

sha*_*anu 8

首先你需要安装内核头文件

sudo apt-get install linux-headers-$(uname -r)
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,那么也试试这个

sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h
Run Code Online (Sandbox Code Playgroud)

编辑types.h

sudo ln -s /usr/src/linux-headers-$(uname -r)/include/uapi/asm-generic/types.h /lib/modules/$(uname -r)/build/include/uapi/linux/types.h
Run Code Online (Sandbox Code Playgroud)