最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】Cygwin下配置Linux内核出错:Makefile:419: *** mixed implicit and normal rules. Stop.

Cygwin crifan 4186浏览 0评论

【问题】

折腾:

【记录】Cygwin下用arm-xscale-linux-gnueabi交叉编译Linux内核

期间, 去调用已有的默认的内核的配置,结果出错:

CLi@PC-CLI-1 ~/develop/kernel/linux-2.6.19.1
$ make whgs_defconfig
Makefile:419: *** mixed implicit and normal rules.  Stop.

如图:

kernel make config Makefile  mixed implicit and normal rules Stop

【解决过程】

1.看起来,和之前折腾crosstool-ng时遇到的:

【已解决】crosstool-ng在Installing C library headers & start files期间出错:Makefile:240: *** mixed implicit and normal rules. Stop.

的问题类似,即:

make是3.82的,对于之前的make 3.81可以识别的混合的显式和隐式的语法,不支持了。

2.所以再次去确认一下,当前cygwin中的make的版本:

CLi@PC-CLI-1 ~/develop/kernel/linux-2.6.19.1
$ make -v
GNU Make 3.82.90
Built for i686-pc-cygwin
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

果然是3.82版本的。

3.所以解决办法就只能是:

要么是去修改Linux内核中的makefile -> 估计修改的地方很多,不止一处;

要么是把Cygwin中的make从3.82,换成旧的3.81的版本的。

此处为了省事,很明显,还是选择第二种。

4.所以,接着就是去Cygwin中,把3.82的make换成3.81的make:

【记录】Cygwin下把make从v3.82换成v3.81

5.把make换成3.81后,再去配置试试,然后就可以避免此处错误,可以配置了:

CLi@PC-CLI-1 ~/develop/kernel/linux-2.6.19.1
$ make whgs_defconfig
  HOSTCC  scripts/basic/fixdep

 

【总结】

Cygwin下,交叉编译时,配置linux内核,出现:

Makefile:419: *** mixed implicit and normal rules. Stop.

的错误的:

原因是:

cygwin下的make是3.82的,不识别之前旧的3.81的make可以识别的那个混合语法;

解决办法是:

把cygwin下的make从3.82换成3.81:

【记录】Cygwin下把make从v3.82换成v3.81

转载请注明:在路上 » 【已解决】Cygwin下配置Linux内核出错:Makefile:419: *** mixed implicit and normal rules. Stop.

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.259 seconds, using 22.23MB memory