如何创建一个跨多个目录查找文件并将目标文件放入不同目录的 Makefile?
How to create a Makefile that finds files across multiple directories and puts the object files into a different directory?
我是 Makefile 的初学者,我想做的事情非常复杂,如果有人可以帮助我,请考虑也向我解释事情是如何工作的,以便我可以学习和理解。当然,我进行了研究,但找不到有帮助的东西。所以我们有以下项目:
src
| File1.cpp
| File2.cpp
| File3.cpp
src2
| File4.cpp
| File5.cpp
| File6.cpp
obj
Makefile
所以我想要一个 Makefile,它可以让我选择尽可能多的目录来搜索源代码文件(在这种情况下 src1
和 src2
然后,将将生成的目标文件放入一个目录中(在本例中为 obj
)。是的,或者类似的东西,或者你可以做的任何可能的东西......哈哈,明白了吗?make
aaaaaah 好的,我会停止...... .
您可以使用以下语法将变量传递给您的 makefile:
$ make SOMEVAR=SOMEVALUE
这个可以用来传递你要建的文件夹:
$ make SRC=src1 # or src, src2, ...
makefile可以是这样的
(你只提到了obj文件,所以我只加了那个):
SRC_FILES=$(wildcard $(SRC)/*.cpp)
OBJ_FILES=$(patsubst $(SRC)/%.cpp,obj/%.o, $(SRC_FILES))
all:$(OBJ_FILES)
@echo "done!"
obj/%.o:$(SRC)/%.cpp
@echo "building $@"
@$(CXX) -o $@ -c $< $(CFLAGS)
我是 Makefile 的初学者,我想做的事情非常复杂,如果有人可以帮助我,请考虑也向我解释事情是如何工作的,以便我可以学习和理解。当然,我进行了研究,但找不到有帮助的东西。所以我们有以下项目:
src
| File1.cpp
| File2.cpp
| File3.cpp
src2
| File4.cpp
| File5.cpp
| File6.cpp
obj
Makefile
所以我想要一个 Makefile,它可以让我选择尽可能多的目录来搜索源代码文件(在这种情况下 src1
和 src2
然后,将将生成的目标文件放入一个目录中(在本例中为 obj
)。是的,或者类似的东西,或者你可以做的任何可能的东西......哈哈,明白了吗?make
aaaaaah 好的,我会停止...... .
您可以使用以下语法将变量传递给您的 makefile:
$ make SOMEVAR=SOMEVALUE
这个可以用来传递你要建的文件夹:
$ make SRC=src1 # or src, src2, ...
makefile可以是这样的 (你只提到了obj文件,所以我只加了那个):
SRC_FILES=$(wildcard $(SRC)/*.cpp)
OBJ_FILES=$(patsubst $(SRC)/%.cpp,obj/%.o, $(SRC_FILES))
all:$(OBJ_FILES)
@echo "done!"
obj/%.o:$(SRC)/%.cpp
@echo "building $@"
@$(CXX) -o $@ -c $< $(CFLAGS)