Make error: missing separator

2018-12-31 16:30发布

I am getting the following error running make:

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

What is causing this?

标签: makefile
10条回答
公子世无双
2楼-- · 2018-12-31 17:07

Just for grins, and in case somebody else runs into a similar error:

I got the infamous "missing separator" error because I had invoked a rule defining a function as

($eval $(call function,args))

rather than

$(eval $(call function,args))

i.e. ($eval $(call... rather than $(eval $(call....

查看更多
唯独是你
3楼-- · 2018-12-31 17:10

So apparently, all I needed was the "build-essential" package, then to run autoconf first, which made the Makefile.pre.in, then the ./configure then the make which works perfectly...

查看更多
长期被迫恋爱
4楼-- · 2018-12-31 17:17

In my case error caused next. I've tried to execute commands globally i.e outside of any target.

UPD. To run command globally one must be properly formed. For example command

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

would become:

$(shell ln -sf ../../user/curl/$(SRC_NAME) ./$(SRC_NAME))
查看更多
千与千寻千般痛.
5楼-- · 2018-12-31 17:17

Following Makefile code worked:

obj-m = hello.o

all:
    $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 

clean:
    $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
查看更多
春风洒进眼中
6楼-- · 2018-12-31 17:19

In my case, the same error was caused because colon: was missing at end as in staging.deploy:. So note that it can be easy syntax mistake.

查看更多
怪性笑人.
7楼-- · 2018-12-31 17:20

For me, the problem was that I had some end-of-line # ... comments embedded within a define ... endef multi-line variable definition. Removing the comments made the problem go away.

查看更多
登录 后发表回答