Windows 生成文件 (名称) - 语法错误: 宏调用中缺少")"

Windows makefile (name) - syntax error: ')' missing in macro invocation

本文关键字:调用 错误 语法 文件 名称 Windows      更新时间:2023-10-16

我得到了一个Windows制作文件,用于我必须做的OpenGL作业,但是当我使用"NMake"运行它时,它会抛出此错误:

makefile(7) : fatal error U1000: syntax error: ')' missing in macro invocation

这是他们给我的制作文件的内容:

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)

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

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

让我这么认为主要是 wildcardpatsubst 函数的存在(NMake AFAIK 不支持(、用于删除的rm命令和 *nix 样式的路径。