Makefile для Windows (имя) — синтаксическая ошибка: ‘)’ отсутствует при вызове макроса

Мне дали 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)

Как я могу это исправить? Большое спасибо!

1

Решение

Насколько я могу судить, это не make-файл NMake, а make-файл GNU Make. Кроме того, в Windows нет команды rm. Похоже, кто-то взял make-файл * nix и наполовину заварил его для сборки Windows …

Что заставляет меня так думать, так это наличие wildcard а также patsubst функции (которые не поддерживаются NMake AFAIK), rm команда для удаления и * nix-style paths.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]