gpt4 book ai didi

c++ - VPATH 中的递归搜索?

转载 作者:搜寻专家 更新时间:2023-10-31 02:04:07 26 4
gpt4 key购买 nike

我的 C++ 项目的源文件组织在 ./src 的嵌套子目录中。我的 makefile 中有一个模式规则,它将所有 .cpp 源文件编译成对象:

$(OBJDIR)/%.o: %.cpp makefile
$(CXX) -c $< -o $@

因为我使用的是这种模式而不是为每个源文件编写编译规则,所以我需要告诉 make 通过 ./src 递归查找这些先决条件。现在我有:

VPATH := $./src/:./src/folder1:./src/folder2:./src/folder3

这行得通,但感觉很不雅,而且当我不可避免地忘记添加新文件夹时也会导致错误。

希望有人有更好的解决方案!

最佳答案

您可以像您一样通过搜索子目录并用冒号替换空格来自动构建 VPATH 变量:

space :=
space +=
VPATH := $(subst $(space),:,$(shell find src -type d))

这假设您的目录或文件名中没有空格。

使用这种方法,如果两个不同子目录中的两个源文件具有相同的名称,我不清楚你会怎么做——但这似乎与你的整体设置更相关,而不是你关于 VPATH 特别是。

对于 $(space) 变量技巧,请参阅漂亮的 Escaping comma and space in GNU Make博文。

关于c++ - VPATH 中的递归搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54192234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com