【问题】
折腾:
【记录】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.
如图:
【解决过程】
1.看起来,和之前折腾crosstool-ng时遇到的:
的问题类似,即:
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:
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下配置Linux内核出错:Makefile:419: *** mixed implicit and normal rules. Stop.