【发布时间】:2014-10-16 12:03:46
【问题描述】:
我有一个在 OS X 中给出以下错误的 makefile,如果有人知道为什么会出现此错误,我将非常感激: ./../../../..//Source//templates/gcc/Makefile.posix:15: *** 缺少分隔符。停止。 这是生成文件:
GNU_INSTALL_ROOT := /usr/local/gcc-arm-none-eabi-4_8-2014q3
GNU_VERSION := 4.8.3
GNU_PREFIX := arm-none-eabi
GDB_PORT_NUMBER := 9992
FLASH_START_ADDR = $(shell $(OBJDUMP) -h $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out -j .text | grep .text | awk '{print $$4}')
JLINK_OPTS = -device nrf51822 -if swd -speed 4000
JLINK_GDB_OPTS = -noir
JLINK = JLinkExe $(JLINK_OPTS)
JLINKD_GDB = JLinkGDBServer $(JLINK_GDB_OPTS)
flash-jlink: flash.jlink
$(JLINK) flash.jlink
flash.jlink:
printf "loadbin $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin $(FLASH_START_ADDR)\nr\ng\nexit\n" > flash.jlink
erase-all: erase-all.jlink
$(JLINK) erase-all.jlink
erase-all.jlink:
# Write to NVMC to enable erase, do erase all, wait for completion. reset
printf "w4 4001e504 2\nw4 4001e50c 1\nsleep 100\nr\nexit\n" > erase-all.jlink
run-debug:
$(JLINKD_GDB) $(JLINK_OPTS) $(JLINK_GDB_OPTS) -port $(GDB_PORT_NUMBER)
.PHONY: flash-jlink flash.jlink erase-all erase-all.jlink run-debug
【问题讨论】:
-
“缺少分隔符”几乎总是意味着您的命令行不以制表符开头。确保每个命令行中的第一个字符是制表符,而不是空格。
-
有多种可能性。绝对@JohnBode 的回答很有可能。如果您实际上粘贴了确切的错误消息而不是在标题中解释它,那么我们可能会明确地告诉您,因为该消息将包含一个行号......没有这个我们只是在猜测。
-
真的,抱歉:../../../../..//Source//templates/gcc/Makefile.posix:15: *** 缺少分隔符。停止。
-
约翰的评论是相关的。您是否确认第 15 行确实以制表符而不是空格开头?
-
确实,第 15 行以一个制表符开头.. 好奇怪