我有以下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工作得非常好.
该+=语法是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)
| 归档时间: |
|
| 查看次数: |
4656 次 |
| 最近记录: |