目标树
目标树将构建产物渲染为依赖森林,展示"什么由什么构建而来"。
内置脚本:script::target-tree
用法
bash
catter script::target-tree [options] -- <build-command>选项
| 选项 | 说明 |
|---|---|
-d, --depth <n> | 限制渲染深度。 |
输出
目标树与命令树的视角相反。它不展示进程的父子关系,而是将输出产物(可执行文件、库文件、目标文件)作为父节点,将其输入文件作为子节点。
例如,命令树中显示 gcc main.o util.o -o app,而目标树则显示为:
app
├── main.o
│ └── main.c
├── util.o
│ └── util.c这样可以清晰地看到哪些源文件参与了哪些最终产物的构建。
使用场景
- 理解目标依赖 -- 查看从最终二进制文件到源文件的完整依赖链。
- 分析 C++20 模块的构建图 -- 追踪模块接口单元及其使用者。
- 识别源文件贡献 -- 确定哪些源文件参与了哪些目标的构建,有助于拆分或重构构建结构。