相关疑难解决方法(0)

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

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

那么,是否有办法强制生成的文件目标首先通过依赖项或其他方式运行?我想过用这样的东西:

cpp_files := $(wildcard src/*.cpp)
$(cpp_files): generated_file.cpp
generated_file.cpp:
    # generate the file here
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.作为参考,我的源目录结构是这样的,所以我需要递归地收集cpp文件:

src/
|---file1.cpp
|---file2.cpp
|---subdir1/
    |---file3.cpp

gen/
|---generated_file.cpp
Run Code Online (Sandbox Code Playgroud)

makefile

5
推荐指数
2
解决办法
4035
查看次数

编译几个项目(使用makefile),但在第一次破坏的构建时停止?

我想做的事情如下:

for i in *
do
    if test -d $i
    then
        cd $i; make clean; make; cd -;
    fi;
done
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但是for如果构建破坏,我希望"打破" -loop.

有没有办法做到这一点?也许某种 - if陈述,可以检查成功make吗?

bash makefile

4
推荐指数
1
解决办法
4846
查看次数

标签 统计

makefile ×2

bash ×1