У меня есть некоторые C++ классов, каждый в свою собственную папку с Makefile, test.cpp для целей тестирования и т.д.Как включить makefile в другой файл makefile?
Main folder
|-> Class1 folder
|-> Class2 folder
|-> Class2.1 folder
|-> Class2 folder
У меня есть главный проект, который должен включать в себя эти классы. Я пытаюсь включить все подфайлы в основной файл makefile.
Я судимый с «ВКЛЮЧИТЬ Poo/Makefile», но это решение имеет 2 проблемы:
- Путь суб-Makefiles неверен, так что файлы не найдены ("Там не исключало в построить цель «Vector3D.cpp»).
- Файл «test.cpp» является перекрытая, вероятно, из-за проблемы пути («Предупреждение: Игнорирование рецепт цели ...»).
Я хотел бы все Makefile независимы, поэтому я могу скопировать/мимо папки класса в новый проект и все еще работает, или я могу выполнить makefile самостоятельно без изменений.
Итак, вопрос: как включить (правильно) makefile в другой файл makefile?
Пример, только для целей тестирования.
Главная Makefile (упрощенный)
include Vector3D/makefile
include Color/makefile
CPP = g++
CXXFLAGS = $(CXXINCS) -Wall -O0
all: main
main: main.o Vector3D.o Color.o
$(CPP) main.o Vector3D.o Color.o -o main
main.o: main.cpp
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)
Sub-Makefile пример (упрощенный)
#Vector3D
CPP = g++
CXXFLAGS = $(CXXINCS) -Wall -O0
all: test
test: Vector3D.o test.o
$(CPP) Vector3D.o test.o -o test
Vector3D/test.o: test.cpp
$(CPP) -c test.cpp -o test.o $(CXXFLAGS)
Vector3D.o: Vector3D.cpp Vector3D.hpp
$(CPP) -c Vector3D.cpp -o Vector3D.o $(CXXFLAGS)
Похожие на Color/Makefile, чем Vector3D
Спасибо вам за ответ, я написал ответ с решением я использовал –