我正在尝试为串行设备安装驱动程序,当我运行安装可执行文件时出现此错误:
cc -DLINUX -c -DMODVERSIONS -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -m64 -mcmodel=kernel -I/usr/src/linux-3.8.0-27-generic/include -I/usr/src/linux-2.4/include -I/usr/src/linux/include -D__SMP__ npreal2.c
npreal2.c:40:31: **fatal error: linux/modversions.h: No such file or directory**
compilation terminated.
在搜索论坛后,我找不到任何解决方案。我注意到/usr/src/linux-3.8.0-27-generic/include/config
中有一个modversions.h,但不在linux文件夹中。
请帮忙!
答案 0 :(得分:1)
尝试传递-I /usr/src/linux-3.8.0-27-generic/include/config
作为参数来制作?
或
检查标头是否是某个包的一部分并更新包。
答案 1 :(得分:0)
您可以通过导航到linux目录(通常是usr / src / linux)来编译系统上的modversions。在linux源目录中,应该有一个名为Rules.make的文件。在这个make文件里面是用于制作modversions.h的构建命令。你可以通过运行来实现:
make update-modverfile
现在,虽然这将生成modversions.h库,如果使用比该文件所依赖的库更新的编译器进行编译,很多时候在尝试运行使用此标头的程序时会出错。然后这变成了一场噩梦。
答案 2 :(得分:0)
另一种方法,我用Xubuntu 13.10成功尝试了它:
打开/ etc / default / grub
添加此行并保存。
GRUB_CMDLINE_LINUX="CONFIG_MODVERSIONS=true"
重新启动
(no, sudo update-grub,ok)
打开终端窗口,享受。
locate modversions.h
(请不要忘记modversion' S ')