CMake + graphviz生成目标依赖图

本文介绍如何利用CMake的–graphviz选项生成.dot文件,再通过graphviz的dot工具将其转换为PNG图片,以直观展示CMake项目的构建依赖关系

安装及生成

首先安装graphviz

sudo apt install graphviz

其次进入项目build目录(会生成很多其他文件)

cmake ../ --graphviz=project_name.dot
dot -Tpng project_name.dot -o project_name.png

可以在cmake中写入如下代码自动生成目标依赖关系图

add_custom_target(graphviz ALL
    COMMAND ${CMAKE_COMMAND}"--graphviz=foo.dot" .
    COMMAND dot -Tpng foo.dot -o foo.png
    WORKING_DIRECTORY"${CMAKE_BINARY_DIR}"
)

实战演示

这是我自己的一个项目,首先生成一个tinyrpc静态库,库中链接了许多第三方库,在又有三个可执行程序链接tinyrpc静态库,生成目标依赖图如下,可以看出是完全符合预想的

FaTNyEs63xvgBmt

VzyBDS2g7IUwWcP

6hnC34FTUE5qVBD

KdlN5fPFMXh1W2z

目标依赖图图像形状意义解析

形状文件类型
椭圆形(Executable)可执行程序
八边形(Static Library)静态库
双层八边形(Shared Library)共享库
三层八边形(Module Library)模块库
矩形(Custom Target)自定义目标
五边形(Interface Library)接口库
六边形(Object Library)对象库
七边形(Unknown Library)第三方库
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@马云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值