GCC内核版本不匹配

时间:2016-04-27 04:17:05

标签: c gcc linux-kernel kernel

我正在尝试构建一个内核模块。但是当我尝试编译代码时,我收到以下错误。

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。任何帮助表示赞赏

2 个答案:

答案 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