我得到以下错误运行make:

Makefile:168: *** missing separator.  Stop.

是什么导致了这种情况?


当前回答

在我的例子中,同样的错误是由于冒号:在结束时丢失了stage .deploy:。所以请注意,这可能是一个简单的语法错误。

其他回答

在我的例子中,错误导致了下一个。我尝试全局执行命令,即在任何目标之外。

乌利希期刊指南。要在全局运行命令,必须正确地构造一个命令。例如命令

ln -sf ../../user/curl/$SRC_NAME ./$SRC_NAME

将成为:

$(shell ln -sf ../../user/curl/$(SRC_NAME) ./$(SRC_NAME))

我在qmake生成的Makefiles中丢失了分隔符文件。我把Qt代码移植到一个不同的平台。我没有QMAKESPEC或MAKE集。这是我找到答案的链接:

https://forum.qt.io/topic/3783/missing-separator-error-in-makefile/5

只是为了笑一笑,以防别人遇到类似的错误:

我得到了臭名昭著的“缺少分隔符”错误,因为我调用了将函数定义为的规则

($eval $(call function,args))

而不是

$(eval $(call function,args))

即($而不是$(。

对我来说,问题是我有一些行将结束的#…注释嵌入在定义…结束多行变量定义。删除注释使问题消失了。

正如在线手册中所指出的,该错误最常见的原因是当make期望制表符时,行被空格缩进。

正确的

target: 
\tcmd

其中\t为TAB (U+0009)

错误的

target:
....cmd

每一个。表示空格(U+0020)。