Makefile часть вопроса
Это довольно легко, если вам не нужно обобщать
попробуйте что-то вроде приведенного ниже кода (но замените пробел на вкладки рядом с g ++)
SRC_DIR := .../src
OBJ_DIR := .../obj
SRC_FILES := $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))
LDFLAGS := ...
CPPFLAGS := ...
CXXFLAGS := ...
main.exe: $(OBJ_FILES)
g++ $(LDFLAGS) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
g++ $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
Автоматическая генерация графика зависимости
Функция "must" для большинства систем make. С GCC вход можно сделать за один проход в качестве побочного эффекта компиляции, добавив -MMD
flag к CXXFLAGS
и -include $(OBJ_FILES:.o=.d)
к концу тела make-файла:
CXXFLAGS += -MMD
-include $(OBJ_FILES:.o=.d)
И, как уже упоминалось, ребята, всегда имейте GNU Make Manual , это очень полезно.