我正在尝试构建一个内核模块。但是当我尝试编译代码时,我收到以下错误。
ERROR: gcc/kernel version mismatch
+ echo 'gcc version: 4.8.4-2ubuntu1~14.04.1) 4.8.4'
gcc version: 4.8.4-2ubuntu1~14.04.1) 4.8.4
+ echo 'kernel version: 4.8.2-19ubuntu1) 4.8.2'
我正在使用ubuntu Ubuntu 14.04.4 LTS。任何帮助表示赞赏
答案 0 :(得分:1)
您构建的内核版本与安装的版本不匹配。您需要针对正确的内核版本进行构建。使用aptitude并将标头与您要构建的内核版本进行匹配,并使用这些内核进行编译。
答案 1 :(得分:0)
您可以浏览this answer。它将告诉您为什么在精确运行的内核版本上构建模块很重要。因为gcc不允许你。你可以使用
sudo apt-get install linux-headers-$(uname -r)
安装完成后,编辑您的makefile以使用当前版本标题,uname -r
将为您提供帮助
obj-m += hello-1.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