我有一个相当大的 C++ 项目,其中包含多个共享库和可执行文件。该项目由 SCons 构建。我的客户要求任何补丁必须包含尽可能少的二进制文件。换句话说,我必须在构建之前知道要构建什么目标。此外,如果 A.cpp 生成 libB.sl 进而影响 libC.sl 和 D.bin,我只需要将 libB.sl 作为输出。我找不到一个简单的方法来做到这一点。有什么建议吗?
最佳答案
通过解析以下命令的输出,可以在构建之前获取您在问题中请求的所有信息。
>> scons --dry-run --tree=all --debug=explain
这不会构建任何东西(--dry-run
),将列出所有需要重建的文件以及原因(--debug=explain
),其次是依赖树(--tree=all
)。
因此您应该能够从该命令的输出中抓取由于 .cpp 文件代码更改而需要重新构建的目标文件列表,然后解析依赖关系树以解析您将拥有哪些二进制文件根据您想用来解析依赖树的任何规则将其包含在您的补丁中。
关于c++ - 如何查看 SCons 中将构建哪些目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30503487/