运行时出现以下错误make:
Makefile:168: *** missing separator. Stop.
Run Code Online (Sandbox Code Playgroud)
是什么造成的?
Kra*_*lew 13
只是为了笑容,以防其他人遇到类似的错误:
我得到了臭名昭着的"遗漏分隔符"错误,因为我调用了一个定义函数的规则
($eval $(call function,args))
Run Code Online (Sandbox Code Playgroud)
而不是
$(eval $(call function,args))
Run Code Online (Sandbox Code Playgroud)
即($eval $(call...而不是$(eval $(call....
就我而言,这个错误是由于缺少空格引起的。我的 makefile 中有这个 if 块:
if($(METHOD),opt)
CFLAGS=
endif
Run Code Online (Sandbox Code Playgroud)
这应该是:
if ($(METHOD),opt)
CFLAGS=
endif
Run Code Online (Sandbox Code Playgroud)
if 后面有一个空格。
就我而言,我实际上缺少中间的一个选项卡ifeq和下一行的命令。一开始就没有空间。
ifeq ($(wildcard $DIR_FILE), )
cd $FOLDER; cp -f $DIR_FILE.tpl $DIR_FILE.xs;
endif
Run Code Online (Sandbox Code Playgroud)
本来应该:
ifeq ($(wildcard $DIR_FILE), )
<tab>cd $FOLDER; cp -f $DIR_FILE.tpl $DIR_FILE.xs;
endif
Run Code Online (Sandbox Code Playgroud)
请注意,这<tab>是一个实际的制表符
小智 5
我的错误发生在具有多行扩展的变量声明行上。我在“\”后面有一个尾随空格,这使得它成为无效的行延续。
MY_VAR = \
val1 \ <-- 0x20 there caused the error.
val2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148094 次 |
| 最近记录: |