我有一个 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