繁体   English   中英

如何创建跨多个目录查找文件并将 object 文件放入不同目录的 Makefile?

[英]How to create a Makefile that finds files across multiple directories and puts the object files into a different directory?

我是 Makefiles 的初学者,我想做的事情非常复杂,如果有人可以帮助我,那么请考虑向我解释一下事情是如何工作的,这样我就可以学习和理解。 当然,我进行了研究,但找不到有用的东西。 所以我们有以下项目:

src
 | File1.cpp
 | File2.cpp
 | File3.cpp
src2
 | File4.cpp
 | File5.cpp
 | File6.cpp
obj
Makefile

所以我想要一个 Makefile 能够让我选择尽可能多的目录来搜索源代码文件(本例为src1src2 ,然后将生成的 object 文件放入一个目录(在本例中为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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM