我有一个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)
我该如何解决?非常感谢!
答案 0 :(得分:0)
据我所知,这不是一个NMake makefile,而是一个GNU Make makefile。此外,Windows中没有'rm'命令。似乎有人拿了一个* nix makefile并为Windows构建半酿造它......
让我这么想的主要是wildcard
和patsubst
函数(NMake AFAIK不支持),rm
删除命令和* nix-style的存在路径。