English 中文(简体)
缺少分隔符制造错误
原标题:Missing Separator Make Error
  • 时间:2012-05-27 21:03:41
  •  标签:
  • makefile
$(foreach name, $(patsubst lib%.a,%,$(LIBS)), 
          $(eval lib$(name).a : lib$(name).a($$($(name)_OBJS))))

在上述直线中显示丢失分隔符时失败 。

:68: *** missing separator.  Stop.
最佳回答

http://www.gnu.org/ software/ make/manual/make. html#Archive-members" rel=“no follow”>GNUMake 手册:

To specify several members in the same archive, you can write all the member names together between the parentheses. For example:

 foolib(hack.o kludge.o)

等于:

 foolib(hack.o) foolib(kludge.o)

然而,这似乎并不适用于先决条件(GNUMake 3.8.2):

# This works:
     flib: foolib(hack.o) foolib(kludge.o)

# This doesn t:
     flib: foolib(hack.o kludge.o)

所以我们只需要稍作修改(使用 @Neils捷径和小心处理括号):

# Change this:
$(foreach name, $(LIBS:lib%.a=%), 
  $(eval lib$(name).a : lib$(name).a($$($(name)_OBJS))))


# to this:
lparen := (
rparen := )

$(foreach name, $(LIBS:lib%.a=%), 
  $(eval lib$(name).a : $($(name)_OBJS:%=lib$(name).a$(lparen)%$(rparen))))
问题回答

暂无回答




相关问题
makefile: how to show line numbers for debugging?

Is there a way to have make display the line number where it declares an error? The -d switch doesn t seem to cut it. Updated: Example output: Reaping winning child 0x08aa8648 PID 9381 /bin/sh: ...

What is the reasoning behind the Makefile whitespace syntax?

I m revisiting Python after Michael Sparks s excellent walk through of Peter Norvig s Python spell checker at the SO DevDay in London. One of the points he highlighted was how clean Python is to look ...

Debugging GNU make

Is there a command line way in make to find out which of the prerequisites of a target is not updated?

How to add an all rule to this Makefile?

I want to just type make all and have the following Makefile do everything it s supposed to do: LEX = lex YACC = yacc CC = gcc calcu: y.tab.o lex.yy.o $(CC) -o calcu y.tab.o lex.yy.o -ly -lfl ...

How to discover number of *logical* cores on Mac OS X?

How can you tell, from the command line, how many cores are on the machine when you re running Mac OS X? On Linux, I use: x=$(awk /^processor/ {++n} END {print n+1} /proc/cpuinfo) It s not ...

Using extern in C doesn t work as expected

I have created two files: tunables.h #ifndef TUNABLES_H #define TUNABLES_H void tunables_load_conservative(); void tunables_load_aggressive(); extern int timer_x; #endif /*TUNABLES_H */ and ...

热门标签