Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel 错误:没有这样的文件或目录_Linux Kernel_Makefile_Kernel Module - Fatal编程技术网

Linux kernel 错误:没有这样的文件或目录

Linux kernel 错误:没有这样的文件或目录,linux-kernel,makefile,kernel-module,Linux Kernel,Makefile,Kernel Module,我是内核模块开发的新手。所以我从简单的helloworld内核模块开始 我正在使用《Linux内核模块编程指南》一书作为参考(它是针对内核2.6的)。 我使用yum安装了kernel-devel和kenel头文件。我用的是软呢帽17。 我发现一个符号链接 /lib/modules/3.3.4-5.fc17.x86_64/build->/usr/src/kernels/3.3.4-5.fc17.x86_64 现在,我有一个hello-1.c(在我的工作目录中有一个简单的内核模块和一个Makefil

我是内核模块开发的新手。所以我从简单的helloworld内核模块开始 我正在使用《Linux内核模块编程指南》一书作为参考(它是针对内核2.6的)。 我使用yum安装了kernel-devel和kenel头文件。我用的是软呢帽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) 生成文件是:

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包含实际模块(不是符号链接)。
问题应该是什么?为什么会有这样的差异?

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

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

请尝试“yum安装kernel-devel”(用于内核头)

消息

make: *** /lib/modules/3.3.4-5.fc17.x86_64/build: No such file or directory.  Stop.
正在告诉您***后面的目录路径不存在<当
-C
目录不存在时,code>Make会发出此错误的精确格式。其他不存在的路径情况将导致更多单词。例如,如果
/lib/modules/3.3.4-5.fc17.x86_64/build
目录确实存在,但它不包含makefile,
make
将明确表示
未找到makefile

因此,其他答案为您提供了一些想法,帮助您创建包含正确内容的目录


这个答案也是为了帮助那些有上述形式错误消息的人,以及那些安装“kernel-devel”对他们没有帮助的人,通过解释消息本身。

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