混和的隐含和普通规则错误
混和的隐含和普通规则错误解决 Linux内核移植的问题解决
执行make命令,会提示"*** 混和的隐含和普通规则。 停止。"的错误。这是由于fedora14的Make工具对低版本内核Makefile一些旧的规则兼容不是很好,只需要修改一下开发包内核原码里的 Makefile。对文件/home/linux_3210/Makefile修改如下:
把:
/ %/: 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)
把:
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 $@
在这里,必须要说明的是,如果在空格和TAB的问题上没有处理好,会出现很纠结的 “遗漏的分割符”的错误,根据Make报错的行号最好好好检查一下,将所有的空格统统改成Tab,这样应该就木有问题了。
