通过Doxygen+Breathe+Sphinx生成代码文档

环境

  • CentOS Linux 7
  • Doxygen
  • Breathe, Sphinx (安装在同一python 环境下)
➜  build yum install doxygen
# 安装最新版本的 Sphinx 及依赖。
# -U 将所有指定的软件包升级到最新的可用版本, 依赖项的处理取决于所使用的升级策略。
➜  build pip3 install -U Sphinx
➜  build pip3 install -U breatheExtension error:
Could not import extension m2r2 (exception: No module named 'm2r2')
make[2]: *** [doc/CMakeFiles/sphinx-doc] Error 2
make[1]: *** [doc/CMakeFiles/sphinx-doc.dir/all] Error 2➜  build pip3 install -U m2r
➜  build pip3 install -U m2r2
➜  build pip3 install  sphinx-autobuild
➜  build pip3 install sphinx_rtd_theme
➜  build pip3 install recommonmark

修改配置文件 conf.py.in

目的是通过 Breathe 导入 Doxygen 生成的 xml 文件 (Breathe 文档).

Breathe 和 Doxygen 在同一 python 环境下的话, 无需配置 Breathe 路径.
extensions 字段新增 ‘breathe’,‘m2r2’
m2r2可以解析Markdown文档
添加 xml 文件路径/工程

extensions = [ "breathe","m2r2" ]
breathe_projects = { "BreatheDemo": "@CMAKE_CURRENT_BINARY_DIR@/xml" }
breathe_default_project = "BreatheDemo"project = "Breathe Demo"
author = "Breathe Demo Authors"
copyright = "2024, Breathe Demo Authors"
version = "@PROJECT_VERSION@"
release = "@PROJECT_VERSION@"html_theme = 'sphinx_rtd_theme'

集成Sphinx cmake脚本

find_program(SPHINX_EXECUTABLENAMES sphinx-buildDOC "Path to sphinx-build executable")# handle REQUIRED and QUIET arguments, set SPHINX_FOUND variable
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Sphinx "Unable to locate sphinx-build executable" SPHINX_EXECUTABLE)

文档生成

git clone https://github.com/PacktPublishing/Software-Architecture-with-Cpp.git
cd Software-Architecture-with-Cpp-master/Chapter03
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/12397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java并发编程——线程基础

Java并发编程的核心之一就是线程(Thread)。线程是程序执行流的最小单元,Java通过线程来实现并发编程。以下是Java线程的一些基础概念: 1. 线程的创建 在Java中,创建线程主要有两种方式: 继承Thread类&am…

贷款中介CRM管理系统解决方案

一、贷款中介行业背景介绍 随着贷款中介行业的快速发展,贷款中介业务逐渐成为企业和个人融资的重要渠道。然而,贷款中介行业存在信息不对称、风险控制不力等难题。给金融稳定带来潜在风险。 二、方案目的和意义 鑫鹿贷款中介系统解决方案旨在规范贷款中…

蓝桥杯单片机组——国赛1 各模块的基础模板

本文为续写个人专栏:蓝桥杯单片机组基础专栏 由于国赛代码体量较为庞大,各个模块涉及时序、消影、去鬼影、消冲突等操作 因此本文基于小蜜蜂老师代码风格编写,并根据实际有改动 本文用于汇总基础的模块程序,更进阶的操作请查看…

Elasticsearch查看集群信息,设置ES密码,Kibana部署

Elasticsearch查看集群信息,设置ES密码,Kibana部署 查看集群信息查看节点信息查看集群健康状态查看分片信息查看其他集群信息 Kibana部署安装设置ES密码 查看集群信息 查看节点信息 curl http://127.0.0.1:9200/_cat/nodes?v 参数说明: ip…

研究生学习---找工作

规划 研一~研二上学期完成小论文,实习,秋招 竞赛:kaggle? 面试题一般简单且为原题,笔试题目很难,不会出原题 项目 找工作软件

SwiftUI中三大渐变色的介绍

在SwiftUI中,渐变色是一种常用的视觉效果,用于创建平滑过渡的颜色变化。通过使用渐变色,我们可以实现丰富多彩的界面设计,增强用户体验。 1. 渐变色的种类和用途 种类: 线性渐变(Linear Gradient&#x…

【时隙ALOHA,CSMA(载波侦听多路访问)carrier sense mltiple access,无线局域网: CSMA/CA】

文章目录 时隙ALOHA时隙ALOHA的效率( Efficiency )纯ALOHA(非时隙)----效率低CSMA(载波侦听多路访问)carrier sense mltiple accessCSMA冲突CSMA/CD(冲突检测)边说边听(提高了信道利用率)以太网就是用的这个无线局域网: CSMA/CA无线局域网中的 MAC&#…

Transformer+Classification学习笔记

论文名称:An Image is Worth 16x16 Words:Transformers for Image Recognition at Scale [2112.11010] MPViT: Multi-Path Vision Transformer for Dense Prediction (arxiv.org) 参考博客与视频: Vision Transformer 超详细解读 (原理分析代码解读) …

2024年了,Covid19怎么发?PANoptosis程序性死亡,抓紧上车!

说在前面 大家众所周知的新冠,其实早在19年末,20年初的时候很多人都抓住了这个热点发到了好文章,Covid-19,这玩意可以做到让一个期刊从2分飙升到20分,且非预警期刊,不过现在退火了,今年是12.7分…

数据结构(十四)----排序算法(1)

目录 一.排序的基本概念 二.插入排序 1.直接插入排序 2.折半插入排序 三.希尔排序(Shell Sort) 四.交换排序 1.冒泡排序 2.快速排序 快速排序算法的效率: 快速排序算法的稳定性: 这一篇博客的重点主要是快速排序&#x…

2024小红书电商实战营,养号打造IP/选爆品/开店铺/爆款笔记/等等(24节)

我们非常荣幸地为大家带来2024小红书电商实战营的第一期,在这里我们将带领大家一起深入学习如何利用小红书平台,实现个人品牌的发展和商业利益的增长。 首先,我们将讨论养号的重要性以及如何打造个人品牌。无论是建立自己的受众群体还是提高…

微信小程序知识点归纳(一)

前言:适用于有一定基础的前端开发同学,完成从网页开发到小程序开发的知识转换。 先立框架,后砌墙壁 回顾:了解微信小程序开发流程-CSDN博客 初始页面结构,三部分pages、utils、配置,分别存放页面、工具类…

拜登的iCloud被黑了? | 安全事件19

NEWS YOU 亨特拜登的iCloud疑似被黑,事件已得到美国特勤局的关注(cnBeta) 美国特勤局表示,该局和其他联邦机构都知道亨特拜登(第46任美国总统乔拜登的次子)的iCloud账户疑似被黑,但不清楚他们…

【解决】Unity Build 应用程序运行即崩溃问题

开发平台:Unity 2021.3.7f1c1   一、问题描述 编辑器 Build 工程结束,但控制台 未显示 Build completed with a result of Succeeded [时间长度] 信息。该情况下打包流程正常,但应用程序包打开即崩溃。   二、问题测试记录 测试1&#xf…

try/except/else/finally块的作用。

在许多编程语言中,try/except/else/finally块是用来处理异常的重要结构,它们允许程序在遇到错误时以一种更为可控和预期的方式进行响应。以下是这些块的详细解释和作用: ### try 块 try块是用于包围可能引发异常的代码的区域。当执行流程进…

百面算法工程师 | 传统图像处理——OpenCV

本文给大家带来的百面算法工程师是传统图像处理的面试总结,文章内总结了常见的提问问题,旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中,我们将总结一些几何变换和图像平滑处理,并提供参考的回答及其理论基础&#…

携手生态伙伴破局产业发展,神州鲲泰驶入信创“深水区”

近年来,面对日趋复杂的竞争形势和日益升级的创新需求,信创产业发展进程不断提速。当下,政企、金融、运营商、能源行业在追求自身业务软硬件的多元化发展。与此同时,信创产业也在逐步向其它行业渗透,带动大信创的万亿级…

C++自定义日期类的精彩之旅(详解)

在学习了C的6个默认成员函数后,我们现在动手实现一个完整的日期类,来加强对这6个默认成员函数的认识。 这是日期类中所包含的成员函数和成员变量: 构造函数 // 函数:获取某年某月的天数 inline int GetMonthDay(int yea…

常见磁盘分区问题

给磁盘分区有几个主要的原因: 组织和管理数据:分区可以帮助用户更好地组织和管理数据。例如,你可以在一个分区上安装操作系统,而在另一个分区上存储个人文件。这样,即使操作系统崩溃或需要重新安装,你的个…