busybox 1.13.3——Makefile:421: *** mixed implicit and normal rules: deprecated syntax

问题描述:busybox 1.13.3 执行make menuconfig命令的时候,提示Makefile:421: *** 混和的隐含和普通规则。 停止等错误,具体错误如下:

Makefile:421: *** mixed implicit and normal rules: deprecated syntax
Makefile:1269: *** mixed implicit and normal rules: deprecated syntax
make: *** No rule to make target 'menuconfig'.  Stop.

问题原因:由于高版本make对Makefile的一些旧规则兼容不是很好,只需要修改Makefile文件即可。

解决流程:

1、 修改

config %config: scripts_basic outputmakefile FORCE

       $(Q)mkdir -p include
       $(Q)$(MAKE) $(build)=scripts/kconfig $@
       $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease

修改为:

  config: scripts_basic outputmakefile FORCE
   $(Q)mkdir -p include
   $(Q)$(MAKE) $(build)=scripts/kconfig $@
   $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
  %config: scripts_basic outputmakefile FORCE
   $(Q)mkdir -p include
   $(Q)$(MAKE) $(build)=scripts/kconfig $@
   $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease

2、 修改

/ %/: 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)

注意,Makefile中替换上述修改内容时,请确保每条指令以tab键开始,否则再次执行make menuconfig命令时会出现类似如下错误:

Makefile:422: *** missing separator.  Stop.

好了,现在就可以正常编译了!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值