【问题标题】:make error: No such file or directory出错:没有这样的文件或目录
【发布时间】:2013-01-14 06:40:54
【问题描述】:

我是内核模块开发的新手。所以我从简单的 hello world 内核模块开始 我正在使用“The Linux Kernel Module Programming Guide”一书作为参考(它针对内核 2.6)。 我用 yum 安装了 kernel-devel 和 kenel 头文件。我正在使用 Fedora 17。 我发现了一个符号链接

/lib/modules/3.3.4-5.fc17.x86_64/build -> /usr/src/kernels/3.3.4-5.fc17.x86_64

现在,我有一个 hello-1.c(简单的内核模块和我的工作目录中的 Makefile) Makefile 是:

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

在 $make 中我得到错误:

make -C /lib/modules/3.3.4-5.fc17.x86_64/build M=/root/kerneldev modules
make: *** /lib/modules/3.3.4-5.fc17.x86_64/build: No such file or directory.  Stop.
make: *** [all] Error 2

我在 Centos-5.x 上成功运行相同的程序,因为 /lib/modules/3.3.4-5.fc17.x86_64/build 包含实际模块(不是符号链接)。 应该是什么问题?为什么会有这样的差异?

【问题讨论】:

  • 我也在使用具有相同符号链接的 fedora 17/18,我没有任何问题。它是一个有效的符号链接吗? /usr/src/kernels/3.3.4-5.fc17.x86_64 存在吗?

标签: linux-kernel makefile kernel-module


【解决方案1】:

我几乎没有疑问,您在哪里发出 make 命令。 您当前的目录似乎是

M=/root/kerneldev

你的 hello-1.c 是否在 /root/kerneldev 文件夹中。

【讨论】:

    【解决方案2】:

    尝试“yum install kernel-devel”(用于内核头文件)

    【讨论】:

      【解决方案3】:

      消息

      make: *** /lib/modules/3.3.4-5.fc17.x86_64/build: No such file or directory.  Stop.
      

      是告诉你***后面的目录路径不存在。当-C 目录不存在时,Make 会发出这种确切格式的错误。其他不存在的路径情况会导致更多的单词。例如,如果/lib/modules/3.3.4-5.fc17.x86_64/build 目录确实存在,但它不包含任何生成文件,则make 将明确表示no makefile found

      因此,其他答案为您提供了帮助您创建具有正确内容的目录的想法。

      此答案还旨在通过解释消息本身来帮助有上述形式的错误消息以及安装“内核开发”对他们没有帮助的人。

      【讨论】:

        猜你喜欢
        • 2017-11-17
        • 2014-01-03
        • 2021-10-31
        • 1970-01-01
        • 2014-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多