не работает patsubst в GNU?

Я использую GNU make на Windows 8, чтобы узнать о make-файлах. Учебное пособие, на которое я ссылаюсь, написано для Linux, поэтому я исправляю make-файл, указанный насколько я знаю, например. заменить ‘/’ на ‘\’ и т. д.

Содержимое моего make-файла:

CC=g++
INCLIST=functions.h
INCDIR=..\include
OBJDIR=.\obj
BINDIR=..\bin
_OBJLIST = main.o
OBJ=$(patsubst %,$(OBJDIR)\%,$(_OBJLIST))

all: main.o

main.o: main.cpp
$(CC) -c -I $(INCDIR) main.cpp -o $(OBJ)

Я могу скомпилировать main.cpp вручную

g++ -c -I ..\include main.cpp -o .\obj\main.o

Тем не менее, когда я бегу make, вывод:

g++ -c -I ..\include main.cpp -o .\obj%

и объектный файл создается в текущем каталоге, а не .\obj каталог и называется ./obj% вместо обязательного main.o, Я запустил ту же настройку на Ubuntu, и она отлично работала, кто-нибудь может объяснить, почему?

Спасибо.. 🙂

1

Решение

Обратная косая черта — это escape-маркер, поэтому \% — это буквальный знак процента. Кроме того, / работает на Windows тоже.

1

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

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

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