Я пытаюсь использовать Makefile, чтобы собрать кучу .cpp
файлов, расположенных в src/code/*.cpp
, затем компилировать каждый *.o
в build/
, и, наконец, генерировать исполняемый файл с теми, в build/
а.Makefile: Компиляция из каталога в другой каталог
Я прочитал пару ответов, с которыми я пытался работать, но столкнулся с проблемами, которые я не понимаю.
CC = g++
FLAGS = -g -c
SOURCEDIR = /src/code
BUILDDIR = build
EXECUTABLE = DesktopSpecificController
SOURCES = $(wildcard src/code/*.cpp)
OBJECTS = $(patsubst src/code/*.cpp,build/%.o,$(SOURCES))
all: dir $(BUILDDIR)/$(EXECUTABLE)
dir:
mkdir -p $(BUILDDIR)
$(BUILDDIR)/$(EXECUTABLE): $(OBJECTS)
$(CC) $^ -o [email protected]
$(OBJECTS): $(BUILDDIR)/%.o : $(SOURCEDIR)/%.cpp
$(CC) $(FLAGS) $< -o [email protected]
clean:
rm -f $(BUILDDIR)/*o $(BUILDDIR)/$(EXECUTABLE)
Я получаю следующее сообщение об ошибке, и я не знаю, почему:
Makefile:19: target `src/code/main.cpp' doesn't match the target pattern
Я также вижу, что при попытке построить Исполняемый, не используя .o файлы, так что это кажется, мое правило не так.
Просто обновил свой Makefile немного. – user1777907