make内核提示:Makefile: *** 混合的隐含和普通规则。 停止。

编译内核时提示:

Makefile:1610: *** 混合的隐含和普通规则。 停止。

 

主要是交叉编译器的语法兼容问题,修改Makefile即可:

找到445行:

config %config: scripts_basic outputmakefile FORCE
                $(Q)mkdir -p include/linux include/config
                $(Q)$(MAKE) $(build)=scripts/kconfig $@

更改为:

config: scripts_basic outputmakefile FORCE
                $(Q)mkdir -p include/linux include/config
                $(Q)$(MAKE) $(build)=scripts/kconfig $@

%config: scripts_basic outputmakefile FORCE
                $(Q)mkdir -p include/linux include/config
                $(Q)$(MAKE) $(build)=scripts/kconfig $@

找到1610行:

/ %/: prepare scripts FORCE
                $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \

                $(build)=$(build-dir)

更改为:

 

/: prepare scripts FORCE
                $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \

 

                $(build)=$(build-dir)

%/: prepare scripts FORCE
                $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \

                $(build)=$(build-dir

 

posted @ 2014-11-11 15:26  水 无痕  阅读(485)  评论(0编辑  收藏  举报