Инкрементная компиляция с использованием MakefileC++

Программы на C++. Форум разработчиков
Anonymous
Инкрементная компиляция с использованием Makefile

Сообщение Anonymous »

Я компилировал все исходники каждый раз для каждой сборки, а это пустая трата времени. Поэтому я попытался реализовать инкрементную компиляцию, что означает, что будут созданы только те файлы .obj, которые были изменены в исходном коде, а затем файлы .obj будут скомпилированы в файл .exe. Но при попытке запустить обновленный код возникли ошибки.
Мой текущий код:

Код: Выделить всё

# Gather all the source files manually
SRC = $(wildcard ../../src/*.cpp ../../src/*/*.cpp ../../src/*/*/*.cpp ../../src/*/*/*/*.cpp)
VENDORS = $(wildcard ../include/glad/glad.c ../include/im3d/im3d.cpp ../include/imgui/imgui.cpp ../include/imgui/imgui_draw.cpp ../include/imgui/imgui_tables.cpp ../include/imgui/imgui_widgets.cpp ../include/imgui/imgui_impl_glfw.cpp ../include/imgui/imgui_impl_opengl3.cpp)

# Object files (stored in ../../build directory)
BUILD_DIR = ../../SIN2024/x64/Debug
OBJ = $(SRC:../../src/%.cpp=$(BUILD_DIR)/%.obj) $(VENDORS:../include/%.cpp=$(BUILD_DIR)/%.obj)

# Include and library directories
INCLUDE = -I../include -I../../src
LIBS = -L../lib -lglfw3dll -lassimp

# Compiler and linker flags
CXX = g++
CXXFLAGS = -g --std=c++20 $(INCLUDE)

# Rule to generate object files from source files (to ../../build directory)
$(BUILD_DIR)/%.obj: ../../src/%.cpp
@mkdir -p $(BUILD_DIR)
$(CXX) $(CXXFLAGS) -c "$

Подробнее здесь: [url]https://stackoverflow.com/questions/79328402/incremental-compilation-using-makefile[/url]

Вернуться в «C++»