【问题】
折腾:
【记录】在Cygwin上用Buildroot为xscale建立交叉工具链
期间,在Installing kernel headers期间,出错:
CLi@PC-CLI-1 ~/develop/buildroot/buildroot-2013.05 $ make /bin/make -j4 HOSTCC="/bin/gcc" HOSTCXX="/bin/g++" silentoldconfig make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05' BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/home/CLi/develop/buildroot/buildroot-2013.05/output/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/home/CLi/develop/buildroot/buildroot-2013.05/output/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/home/CLi/develop/buildroot/buildroot-2013.05/output/build/buildroot-config/tristate.config BUILDROOT_CONFIG=/home/CLi/develop/buildroot/buildroot-2013.05/.config /home/CLi/develop/buildroot/buildroot-2013.05/output/build/buildroot-config/conf --silentoldconfig Config.in make[1]: Leaving directory `/home/CLi/develop/buildroot/buildroot-2013.05' >>> Extracting kernel headers rm -rf /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux /bin/install -d /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1 bzcat /home/CLi/develop/buildroot/buildroot-2013.05/dl/linux-2.6.19.1.tar.bz2 | \ tar --strip-components=1 -C /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1 -xf - touch /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1/.unpacked >>> Patching kernel headers support/scripts/apply-patches.sh /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1 toolchain/kernel-headers \ linux-2.6.19.1-\*.patch{,.gz,.bz2} touch /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1/.patched >>> Installing kernel headers (cd /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1; \ /bin/make -j4 ARCH=arm \ HOSTCC="/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin/ccache /bin/gcc" HOSTCFLAGS="" \ HOSTCXX="/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin/ccache /bin/g++" \ INSTALL_HDR_PATH=/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux headers_install; \ ) make[1]: arm-xscale-linux-gnu-gcc: Command not found make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1' make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1' Makefile:1444: *** mixed implicit and normal rules. Stop. make[1]: Leaving directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1' toolchain/kernel-headers/kernel-headers.mk:60: recipe for target `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux/.configured' failed make: *** [/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux/.configured] Error 2
如图:
即:
Makefile:1444: *** mixed implicit and normal rules. Stop. |
【解决过程】
1.这个问题,很明显,是以前,在编译crosstool-ng时,就遇到过多次,并且通过:
已经彻底解决了的。
即:此处的cygwin,已经是,旧的3.81版本的了。不应该再出现此问题才对。
但是怎么此处又出现了。
2.去看了看,当前的make的版本:
CLi@PC-CLI-1 ~/develop/buildroot/buildroot-2013.05 $ make --version 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.然后才想起来,估计是之前:
【记录】将win7 x64下的cygwin的gcc从当前的4.7.3降级到4.5.3
不小心,结果cygwin安装过程,内部自动把3.81升级为3.82了。
4.所以,只能此处,再去重新,降级make,将当前的3.82,再次重新换为3.81的:
【记录】更换cygwin中某个模块的版本:再次将make从3.82换成3.81
5.然后再去编译试试,就可以了:
CLi@PC-CLI-1 ~/develop/buildroot/buildroot-2013.05 $ make >>> Installing kernel headers (cd /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1; \ /bin/make -j4 ARCH=arm \ HOSTCC="/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin/ccache /bin/gcc" HOSTCFLAGS="" \ HOSTCXX="/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin/ccache /bin/g++" \ INSTALL_HDR_PATH=/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux headers_install; \ ) make[1]: arm-xscale-linux-gnu-gcc: Command not found make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1' make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1' CHK include/linux/version.h HOSTCC scripts/basic/fixdep
如图:
【总结】
此处,cygwin下编译buildroot,又出现了之前就遇到的:
Makefile:1444: *** mixed implicit and normal rules. Stop. |
错误,原因是:
makefile的版本,3.81的时候,支持混合语法,3.82不支持,
当前是3.82的make。
解决办法是:
换成3.81的make。
相关的内容,详见:
Makefile:240: *** mixed implicit and normal rules. Stop.
转载请注明:在路上 » 【已解决】cygwin下编译buildroot在Installing kernel headers期间出错:Makefile:1444: *** mixed implicit and normal rules. Stop.