gpt4 book ai didi

makefile - 如何确保在makefile中的所有其他构建规则之前运行目标?

转载 作者:行者123 更新时间:2023-12-04 16:27:45 24 4
gpt4 key购买 nike

我有一个C++项目,其中包含一个所有其他C++文件都依赖的生成文件。我试图在开始任何其他编译之前强制生成和编译该文件。通常,将其放到all:目标中就很简单,但是复杂的是我的Makefile也是由构建系统生成的,并且我只能将片段附加到Makefile中,而不是一般地对其进行编辑。

因此,是否有一种方法可以通过依赖关系或其他方式强制生成的文件目标首先运行?我想过使用这样的东西:

cpp_files := $(wildcard src/*.cpp)
$(cpp_files): generated_file.cpp
generated_file.cpp:
# generate the file here

但这似乎不起作用。作为引用,我的源目录结构是这样的,因此我需要递归收集cpp文件:
src/
|---file1.cpp
|---file2.cpp
|---subdir1/
|---file3.cpp

gen/
|---generated_file.cpp

最佳答案

如果确定这确实是您想要的,这是一种实现方法:制定一个虚拟文件规则,makefile将使用include

.PHONY: dummy
dummy:
# generate the file here

-include dummy

无论您指定什么目标,Make都将首先运行 dummy规则,然后自行重启。

关于makefile - 如何确保在makefile中的所有其他构建规则之前运行目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10726321/

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