nmake附加到变量

gud*_*dge 7 nmake makefile

  • 效用:NMake
  • 平台:Windows 7

我有以下Makefile

FILE = $(shell) *.c
FILE += $(shell) *.cpp

exec:
    @echo $(FILE)
Run Code Online (Sandbox Code Playgroud)

这与make完美搭配.这会引发nmake的以下错误

makefile(2) : fatal error U1036: syntax error : too many names to left of '='
Stop.
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

没有线

FILE += $(shell) *.cpp
Run Code Online (Sandbox Code Playgroud)

nmake工作得非常好.

Jon*_*ler 6

+=语法是GNU制作的扩展,是率先在Sun公司make在80年代末.它不是POSIX标准make或原始AT&T 语法的一部分make.

如果使用扩展,则在切换到不支持它们的系统时会被捕获.你要么必须重做(硬)或坚持使用原始系统.


修改要使用的文件的一种方法nmake可能是:

FILE1 = $(shell) *.c
FILE2 = $(shell) *.cpp
FILE  = $(FILE1) $(FILE2)

exec:
    @echo $(FILE)
Run Code Online (Sandbox Code Playgroud)

或者,鉴于shell未定义宏,甚至:

FILE1 = *.c
FILE2 = *.cpp
FILE  = $(FILE1) $(FILE2)

exec:
    @echo $(FILE)
Run Code Online (Sandbox Code Playgroud)