Мне дали make-файл Windows для использования в назначении OpenGL, которое я должен сделать, но он выдает эту ошибку, когда я запускаю его с помощью ‘NMake’:
makefile(7) : fatal error U1000: syntax error: ')' missing in macro invocation
Это содержимое make-файла, который они мне дали:
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)
Как я могу это исправить? Большое спасибо!
Насколько я могу судить, это не make-файл NMake, а make-файл GNU Make. Кроме того, в Windows нет команды rm. Похоже, кто-то взял make-файл * nix и наполовину заварил его для сборки Windows …
Что заставляет меня так думать, так это наличие wildcard
а также patsubst
функции (которые не поддерживаются NMake AFAIK), rm
команда для удаления и * nix-style paths.
Других решений пока нет …