*** recipe commences before first target. Stop. 解决方案
在编译时,提示如下错误:
drivers/net/wireless/MT79XX/Makefile:407: *** recipe commences before first target. Stop.
运行vim打开该Makefile文件,并打开行号。
$vim drivers/net/wireless/MT79XX/Makefile
显示:
391 LINUX:
392 ifeq ($(TCSUPPORT_WLAN_MT7915_BUILD_IN),1)
393 obj-y += ../os/linux/
394 endif
395 # cp -f $(RT28xx_OS_DIR)/linux/Makefile.6 $(RT28xx_OS_DIR)/linux/Makefile
396 ifneq ($(TCSUPPORT_WLAN_MT7915_BUILD_IN),1)
397 cp -f $(RT28xx_OS_DIR)/linux/Makefile.mt_wifi_ap $(RT28xx_OS_DIR)/linux/Makefile
398 endif
399 ifeq ($(PLATFORM),DM6446)
400 $(MAKE) ARCH=arm CROSS_COMPILE=arm_v5t_le- -C $(LINUX_SRC) SUBDIRS=$(RT28xx_OS_DIR)/linux modules
401 #mark for kernel clean fail---econet mark
402 #else ifeq ($(PLATFORM),FREESCALE8377)
403 # $(MAKE) ARCH=powerpc CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_OS_DIR)/linux modules
404 #else ifeq ($(PLATFORM), $(filter $(PLATFORM), MT7622 MT7621))
405 # $(MAKE) ARCH=$(ARCH) CROSS_COMPILE="$(CROSS_COMPILE)" -C $(LINUX_SRC) SUBDIRS=$(RT28xx_OS_DIR)/linux modules
406 else
407 $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_OS_DIR)/linux modules
408 endif
409 ifeq ($(RT28xx_MODE),AP)
410 cp -f $(RT28xx_OS_DIR)/linux/$(MODULE)_ap.ko $(RT28xx_OS_DIR)/linux/mt_single_driver_ap.ko
411 endif
412 ifeq ($(RT28xx_MODE),STA)
413 cp -f $(RT28xx_OS_DIR)/linux/$(MODULE)_sta.ko $(RT28xx_OS_DIR)/linux/mt_single_driver_sta.ko
414 endif
错误在于: Linux makefile要求格式:
target: [deps...]
recipe 1
recipe 2
也就是target下面的每一个recipe都要求前面有一个
而我们看到上面的target, 即391行的Linux:下面的 if..else..endif都是顶在最前面,没有留任何空间。因此,在每一行插入
391 LINUX:
392 ifeq ($(TCSUPPORT_WLAN_MT7915_BUILD_IN),1)
393 obj-y += ../os/linux/
394 endif
395 # cp -f $(RT28xx_OS_DIR)/linux/Makefile.6 $(RT28xx_OS_DIR)/linux/Makefile
396 ifneq ($(TCSUPPORT_WLAN_MT7915_BUILD_IN),1)
397 cp -f $(RT28xx_OS_DIR)/linux/Makefile.mt_wifi_ap $(RT28xx_OS_DIR)/linux/Makefile
398 endif
399 ifeq ($(PLATFORM),DM6446)
400 $(MAKE) ARCH=arm CROSS_COMPILE=arm_v5t_le- -C $(LINUX_SRC) SUBDIRS=$(RT28xx_OS_DIR)/linux modules
401 #mark for kernel clean fail---econet mark
402 #else ifeq ($(PLATFORM),FREESCALE8377)
403 # $(MAKE) ARCH=powerpc CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_OS_DIR)/linux modules
404 #else ifeq ($(PLATFORM), $(filter $(PLATFORM), MT7622 MT7621))
405 # $(MAKE) ARCH=$(ARCH) CROSS_COMPILE="$(CROSS_COMPILE)" -C $(LINUX_SRC) SUBDIRS=$(RT28xx_OS_DIR)/linux modules
406 else
407 $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_OS_DIR)/linux modules
408 endif
409 ifeq ($(RT28xx_MODE),AP)
410 cp -f $(RT28xx_OS_DIR)/linux/$(MODULE)_ap.ko $(RT28xx_OS_DIR)/linux/mt_single_driver_ap.ko
411 endif
412 ifeq ($(RT28xx_MODE),STA)
413 cp -f $(RT28xx_OS_DIR)/linux/$(MODULE)_sta.ko $(RT28xx_OS_DIR)/linux/mt_single_driver_sta.ko
414 endif
完美解决该问题。
解决这个问题花了我一些时间。因为报错指向的是407行,我也在网上查到了recipe是需要在前面插入
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
