c++ - 如何查看 SCons 中将构建哪些目标?

标签 c++ scons

我有一个相当大的 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/

相关文章:

java - 在 SCons 中构建项目时如何指定 java 标志?

C++ hashCode - 处理大数(+ 模运算)

c++ - 默认情况下,在 Visual Studio 中从项目中删除安全警告 (_CRT_SECURE_NO_WARNINGS)

c++ - 如何在 C++ 中分离声明两个相互包含(循环依赖)的类?

scons - 我如何告诉 SCons 忽略来自命令操作的隐式依赖项?

performance - Environment.Clone 窃取启动时间

python - 从 SConscript 确定构建目录

SCons:依赖循环?

c++程序使用GMP库

c++ - 从未被着色器处理的位置照亮图元