Windows makefile(名称) - 语法错误:')'在宏调用中丢失

时间:2017-05-26 20:40:23

标签: c++ windows makefile macros invocation

我有一个Windows makefile用于我必须做的OpenGL分配,但是当我使用' NMake'

运行它时会抛出此错误
makefile(7) : fatal error U1000: syntax error: ')' missing in macro invocation

这是他们给我的makefile的内容:

CXX=cl
COMMONFLAGS= -nologo
CXXFLAGS= -MD -c
INCLUDES= -Iinclude
LFLAGS= -incremental:no -manifest:no OpenGl32.lib glew32.lib SDL2.lib SDL2main.lib -SUBSYSTEM:CONSOLE
BUILDDIR=build
SRCDIR=src
SRC=$(wildcard $(SRCDIR)/*.cpp)
_OBJ=$(SRC:.cpp=.obj)
OBJ=$(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(_OBJ))
TARGET=prac1.exe
TARGETPATH=$(BUILDDIR)/$(TARGET)

build: $(OBJ) $(TARGET)

run:
    cd $(BUILDDIR); ./$(TARGET)

$(TARGET): $(OBJ)
    $(CXX) $(OBJ) -Fe$(TARGETPATH) $(COMMONFLAGS) -link $(LFLAGS)


$(BUILDDIR)/%.obj: $(SRCDIR)/%.cpp
    $(CXX) $(INCLUDES) $(CXXFLAGS) $< -Fo$@ $(COMMONFLAGS)

clean:
    rm -f $(TARGETPATH)
    rm -f $(OBJ)

我该如何解决?非常感谢!

1 个答案:

答案 0 :(得分:0)

据我所知,这不是一个NMake makefile,而是一个GNU Make makefile。此外,Windows中没有'rm'命令。似乎有人拿了一个* nix makefile并为Windows构建半酿造它......

让我这么想的主要是wildcardpatsubst函数(NMake AFAIK不支持),rm删除命令和* nix-style的存在路径。