makefile老是报“recipe for target xxx”错误,不妨先看看编码有空格

makefile老是报“recipe for target xxx”错误,不妨先看看编码是否正确

2015年11月06日 15:49:50

阅读数:61306

编写内核模块,make出错。在排除了makefile语法错误,路径错误之后,依然显示“recipe for target xxx”的错误信息时,也许你该怀疑一下你makefile所用的编码了。(如果你的makefile是直接从网上复制来的,先在window下,用写字板看看是否有乱码吧,“空格”的乱码很有可能就是你错误的罪魁祸首)

---------以下是我的悲惨经历,写给大家,尤其是和我一样的新手,避免此类错误----------------

本来第一个内核模块的编写并不难,所有我照着网上的讲解做,写hello.c的源文件,写makefile(偷懒,直接从网上复制粘贴,然后它就给了我深刻的教训)。

Make编译不能通过,总提醒我“recipe for target xxx”和“没有匹配的文件路径”的问题。(其实是这两个错误的地方,都有问题“空格”)。

 

在网上找,有人说,Ubuntu没有源码,要先下源码下来make什么的,我照做(其实后来经过证明,不是这个的问题。当你能在你的Ubuntu系统发现有/lib/modules/XXX-generic/build这个路径,就可以为直接为你现在的Ubuntu编模块。之所以要下源码,是对那些版本不一样的人说的。比如你要给2.6的内核编模块,而你的Ubuntu内核是4.0,那没法,只能去下个2.6的内核源码。但我是为当前内核编译内核,没必要)。结果还是同样的错误信息。

 

抱着死马当活马医的心情,我在另外一个网页上复制了另一篇makefile,万幸这篇是成功的,要不然我都要放弃了。

 

综合两个makefile,我发现基本都是一样的内容。这时我才考虑到有可能是编码的问题,于是把两个文档复制到window下,用写字板查看。果然

有问题的makefile:

 没问题的makefile:

 坑爹的空格!!!把空格全部重新改了一遍,再到Ubuntu下运行,好了,行了。

 

转自:https://blog.csdn.net/bilifo/article/details/49684015

你可能感兴趣的:(Lniux)