【问题标题】:GCC-Kernel version MismatchGCC 内核版本不匹配
【发布时间】:2016-04-27 21:44:10
【问题描述】:

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

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

【问题讨论】:

    标签: c gcc linux-kernel kernel


    【解决方案1】:

    您正在构建的内核版本与安装的版本不匹配。您需要针对正确版本的内核进行构建。使用 aptitude 并将标头与您要构建的内核版本匹配并使用这些进行编译。

    【讨论】:

    • 你能解释一下如何使用 aptitude 来完成这项工作吗?我实际上是新手。
    【解决方案2】:

    您可以通过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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 2012-09-09
      • 2012-09-05
      • 1970-01-01
      • 2020-07-04
      • 2011-05-08
      • 2019-06-27
      相关资源
      最近更新 更多