当前位置: 首页 > news >正文

Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成

Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成

  • Chapter1 Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成
    • 1、 Doxygen简介
      • 1. 安装Doxygen
      • 1)方法一:
      • 2)方法二:
      • 2. doxygen注释自动生成插件
      • 3. doxygen注释基本语法
      • 4. doxygen的生成
  • Chapter2 Vscode配置Doxygen Doumentation Generator插件实现自动补全注释
    • (1) 在插件市场下载 Doxygen Doumentation Generator插件
    • (2) 配置插件
    • (3) Clion已经集成了Doxygen语法插件
    • (4) Build选型关键设置
  • Chapter3 Doxygen注释规范
  • Chapter4 ubuntu 使用doxygen生成软件文档[Vscode 配置doxygen插件方法]


Chapter1 Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成

原文链接:https://blog.csdn.net/youlinhuanyan/article/details/144009219

1、 Doxygen简介

Doxygen 是一个由 C++ 编写的、开源的、跨平台的文档生成系统。最初主要用于生成 C++ 库的 API 文档,但目前又添加了对 C、C#、Java、Python、Fortran、PHP 等语言的支持。其从源代码中提取注释,并生成多种输出格式,如HTML、PDF、LaTeX、RTF等,以帮助开发者创建易于阅读和理解的代码文档。

Doxygen 简化了另行编写文档带来的重复性劳动,将代码和文档的工作合二为一。经过 10 年的迭代,Doxygen 成为了 C/C++ 项目首选的文档生成工具。

官网地址:https://www.doxygen.nl/

1. 安装Doxygen

1)方法一:

ubuntu下apt命令快速安装

sudo apt-get install doxygen		// 安装doxygen
sudo apt-get install graphviz       // 安装文档中画图的软件
sudo apt-get install doxygen-gui    // 安装doxygen的配置界面

注意,如需在html的文档,中显示类图等关系图,需要安装graphviz库,安装命令如下

sudo apt-get install graphviz

且需要在Doxyfile配置文件中的DOT_PATH 指定graphviz的命令行路径

验证查看一下版本:

$ doxygen --version
1.9.1

2)方法二:

采用源码编译,则需要先下载源码,源码下载地址,点这里
https://github.com/doxygen/doxygen/releases

在这里插入图片描述
在这里插入图片描述
执行如下命令

cd doxygen-1.12.0
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/DOXYGEN ..  # 指定安装doxygen的用户目录为~/DOXYGEN
make
make install

添加到环境变量中

vim .bashrc
export PATH=$HOME/DOXYGEN/bin:$PATH

查看一下安装情况

doxygen --version

2. doxygen注释自动生成插件

  1. IDE中安装doxygen注释辅助生成插件
    正式标注前,介绍一款VsCode下的doxygen插件Doxygen Documentation Generator
    在这里插入图片描述
    2)配置插件的一些默认参数
    首先配置注释提示块的触发快捷方式,默认是/**触发的,打开插件面板,找到Doxygen Documentation 插件,点击配置图标,找到到Extension Settings
    在这里插入图片描述
    修改为如下///,当然,不修改使用默认的/**也是可以的
    在这里插入图片描述
    采用默认的///触发效果,在函数头输入///按下回车后如下:
    在这里插入图片描述
    采用默认的/**触发效果:
    在这里插入图片描述
    此外,还有很更多的默认参数,根据自己的需要进行配置,可以极大的提高效率,避免写注释时,大量的复制粘贴操作,如下可配置默认的作者、邮箱等;
    在这里插入图片描述
    可在配置中,修改如下内容
    在这里插入图片描述
    注意,上面的注释辅助生成插件不是必须的,不同的IDE环境,可能有不同的插件;即使不安装这个,也不影响doxygen的使用,只是需要手动按doxygen的注释语法,逐一手动输入即可;

3. doxygen注释基本语法

/*** @file main.cpp* @author your name (you@domain.com)* @brief * @version 0.1* @date 2024-11-24* * @copyright Copyright (c) 2024* */#include <iostream>/*** @brief main 函数* * @param argc * @param argv * @return int */
int main(int argc, char** argv)
{std::cout<< "HelloWorld"<< std::endl;return 0;
}/*** @brief helloworld fun* * @param num * @param str * @return int */
int helloWorld(int num, char* str) {return 0;
}/*** @brief 这个一个Hello -class类* */
class Hello
{
public:/*** @brief num变量* */int num;/*** @brief index介绍* */int index;/*** @brief Construct a new Hello object* * @param a * @param b */Hello(int a, int b);Hello();~Hello();
};/*** @brief Hello2* */
class Hello2: public Hello
{
public:/*** @brief Construct a new Hello 2 object* * @param a * @param b */Hello2(int a, int b);/*** @brief Destroy the Hello 2 object* */~Hello2();
};

4. doxygen的生成

首先应生成一个doxygen的配置文件,使用如下命令:

doxygen -g # 默认创建文件名为Doxyfile
# doxygen -g dox-config-file # 指定文件名

通过该配置文件,可以指定生成doxygen文档的输入、输出、生成范围等

以下是一些常用的Doxyfile配置选项:
在这里插入图片描述

执行生成命令,生成文档

# 指定默认配置文件Doxfile,生成文档
doxygen Doxyfile

默认情况下,将生成两类文档html、latex
在这里插入图片描述
如无需要latex可在Doxyfile配置文档中配置GENERATE_LATEX = NO后,如下所示
在这里插入图片描述
完成!

Chapter2 Vscode配置Doxygen Doumentation Generator插件实现自动补全注释

原文链接

(1) 在插件市场下载 Doxygen Doumentation Generator插件

(2) 配置插件

设置->settings.json, 编辑 settings.json文件,添加如下内容
在这里插入图片描述

    // 注释"doxdocgen.c.triggerSequence": "/**",   // 触发自动注释的生成"doxdocgen.c.commentPrefix": " * ",     // 注释行的前缀"doxdocgen.c.firstLine": "/**",         // 注释行的首行"doxdocgen.c.lastLine": " */",          // 注释行的尾行// file注释顺序"doxdocgen.file.fileOrder": ["copyright","empty","file","brief","author","version","date",// "custom"    // 自定义选项],// file自定义选项"doxdocgen.file.customTag": ["自定义选项",],"doxdocgen.file.copyrightTag": [                                // file注释"@copyright Copyright (c) {year}.."],"doxdocgen.generic.authorEmail":    "iotxiaohu@qq.com",         // {email}  样式"doxdocgen.generic.authorName":     "iotxiaohu",                // {author} 样式"doxdocgen.generic.dateFormat":     "YYYY-MM-DD",               // {date}   样式"doxdocgen.generic.dateTemplate":   "@date{indent:9}{date}",    // {date}   模板"doxdocgen.file.fileTemplate":      "@file{indent:9}{name}",    // {name}   模板"doxdocgen.generic.briefTemplate":  "@brief{indent:9}描述","doxdocgen.file.versionTag":        "@version{indent:9}0.1","doxdocgen.generic.authorTag":      "@author{indent:9}{author}({email})",// generic注释的内容和顺序"doxdocgen.generic.order": ["brief","empty","param","return",// "empty","author","date",// "custom",       // 自定义选项],// generic自定义选项"doxdocgen.generic.customTags": ["自定义选项",],"doxdocgen.cpp.tparamTemplate": "@tparam {param} ", // ???"doxdocgen.generic.paramTemplate": "@param{indent:9}{param}{indent:21}参数描述","doxdocgen.generic.returnTemplate": "@return{indent:9}{type} ","doxdocgen.generic.includeTypeAtReturn": true,      // return 中包含类型信息"doxdocgen.generic.boolReturnsTrueFalse": false,    // bool 返回值拆分成 true 和 false 两种情况"doxdocgen.generic.linesToGet": 4,                  // 回车后最多向下多少行去找函数声明"doxdocgen.generic.useGitUserName": false,          // {author} 是都根据 git config --get user.name 替换"doxdocgen.generic.useGitUserEmail": false,

(3) Clion已经集成了Doxygen语法插件

在函数前输入

/**

回车,就可以自动出现需要填写的内容.
但是clion的插件只对函数有用, 对文件开头没有用,那就自己添加吧.

(4) Build选型关键设置

在这里插入图片描述

Chapter3 Doxygen注释规范

原文链接

在这里插入图片描述

Chapter4 ubuntu 使用doxygen生成软件文档[Vscode 配置doxygen插件方法]

原文链接

在这里插入图片描述

相关文章:

Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成

Ubuntu下的DoxygenVScode实现C/C接口文档自动生成 Chapter1 Ubuntu下的DoxygenVScode实现C/C接口文档自动生成1、 Doxygen简介1. 安装Doxygen1&#xff09;方法一&#xff1a;2&#xff09;方法二&#xff1a;2. doxygen注释自动生成插件3. doxygen注释基本语法4. doxygen的生成…...

【字符串两大注意事项】

表达字符串的方式 1.双引号&#xff1a;"hello world" 2.字符指针&#xff1a;char* ptr "hello world" 3.字符数组&#xff1a;char arr[] "hello world"辨析 项目表示方式代表含义内存分布1“hello world”字符串字面量字符串常量就是数据…...

jmap命令详解

jmap 用于生成 heap dump 文件&#xff0c;如果不使用这个命令&#xff0c;还可以使用-XX:HeapDumpOnOutOfMemoryError参数来让虚拟机出现 OOM 的时候自动生成 dump 文件。 jmap 不仅可以生成 dump 文件&#xff0c;还可以查询finalize执行队列、Java 堆的详细信息&#xff0c…...

微机原理与接口技术期末大作业——4位抢答器仿真

在微机原理与接口技术的学习旅程中&#xff0c;期末大作业成为了检验知识掌握程度与实践能力的关键环节。本次我选择设计并仿真一个 4 位抢答器系统&#xff0c;通过这个项目&#xff0c;深入探索 8086CPU 及其接口技术的实际应用。附完整压缩包下载。 一、系统设计思路 &…...

FOC核心原理的C语言实现

概述 应用FOC算法&#xff0c;比如无人机、电动汽车或工业电机控制。因此&#xff0c;除了理论&#xff0c;还需要提供实用的实现步骤、常见问题及解决方案&#xff0c;比如如何获取电机的位置信息&#xff08;编码器或传感器&#xff09;&#xff0c;如何处理电流采样&#x…...

基于互联网+智慧水务信息化整体解决方案

智慧水务的概述与发展背景 智慧水务是基于互联网、云计算、大数据、物联网等先进技术&#xff0c;对水务行业的工程建设、生产管理、管网运营、营销服务及企业综合管理等业务进行全面智慧化管理的创新模式。它旨在解决水务企业分散经营、管理水平不高、投资不足等问题。 水务…...

【信息系统项目管理师-选择真题】2005下半年综合知识答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7~8题】【第9~10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21题】【第22题…...

计算机毕业设计Python+CNN卷积神经网络考研院校推荐系统 考研分数线预测 考研推荐系统 考研爬虫 考研大数据 Hadoop 大数据毕设 机器学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

第十一章 F - H 开头的术语

文章目录 第十一章 F - H 开头的术语文件流 (file stream)最终类 (final class)最终方法 (final method)最终属性 (final property)外键 (foreign key)基础 (foundation) 以 G 开头的术语全局 (global)全局数据库 (globals database)全局目录 (global directory)全局唯一标识符…...

深度研究新范式:通过Ollama和DeepSeek R1实现自动化研究

引言 在信息时代&#xff0c;海量数据的产生与传播速度前所未有地加快&#xff0c;这既为研究者提供了丰富的资源&#xff0c;也带来了信息筛选与处理的巨大挑战。 传统研究方法往往依赖于研究者的个人知识库、文献检索技能以及时间投入&#xff0c;但面对指数级增长的数据量…...

深度学习的应用

目录 一、机器视觉 1.1 应用场景 1.2 常见的计算机视觉任务 1.2.1 图像分类 1.2.2 目标检测 1.2.3 图像分割 二、自然语言处理 三、推荐系统 3.1 常用的推荐系统算法实现方案 四、图像分类实验补充 4.1 CIFAR-100 数据集实验 实验代码 4.2 CIFAR-10 实验代码 深…...

基于51单片机和WS2812B彩色灯带的流水灯

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码四、主函数总结 系列文章目录 前言 用彩色灯带按自己想法DIY一条流水灯&#xff0c;谁不喜欢呢&#xff1f; 所用单片机&#xff1a;STC15W204S &#xff08;也可以用其他1T单片机&#xff0c;例如&#xff0c;S…...

DFS(深度优先搜索)与回溯算法详解

DFS&#xff08;深度优先搜索&#xff09;与回溯算法详解 一、DFS 基础 1. 什么是DFS&#xff1f; 深度优先搜索&#xff08;Depth-First Search&#xff0c;DFS&#xff09;是一种用于遍历或搜索树或图的算法。其核心思想是&#xff1a; 一条路走到黑&#xff1a;从起点出发…...

服务器虚拟化技术详解与实战:架构、部署与优化

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 引言 在现代 IT 基础架构中&#xff0c;服务器虚拟化已成为提高资源利用率、降低运维成本、提升系统灵活性的重要手段。通过服务…...

数据分析系列--②RapidMiner导入数据和存储过程

一、下载数据 二、导入数据 1. 在本地计算机中创建3个文件夹 2. 从本地选择.csv或.xlsx 三、界面说明 四、存储过程 1.保存 Congratulations, you are done. 一、下载数据 点击下载AssociationAnalysisData.xlsx数据集 二、导入数据 1. 在本地计算机中创建3个文件夹 2. 从…...

CSS 背景与边框:从基础到高级应用

CSS 背景与边框&#xff1a;从基础到高级应用 1. CSS 背景样式1.1 背景颜色示例代码&#xff1a;设置背景颜色 1.2 背景图像示例代码&#xff1a;设置背景图像 1.3 控制背景平铺行为示例代码&#xff1a;控制背景平铺 1.4 调整背景图像大小示例代码&#xff1a;调整背景图像大小…...

国内外人工智能AI工具网站大全(一键收藏,应有尽有)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 国内外人工智能AI工具网站大全&#xff08;一键收藏&#xff0c;应有尽有&#xff09; 摘要一、AI写作工具二、AI图像工具2.1、常用AI图像工具2.2、AI图片插画生成2.3、AI图片背景移…...

Java中初步使用websocket(springBoot版本)

一、什么是websocket WebSocket是一种在Web应用程序中实现实时双向通信的协议。它为浏览器和服务器之间提供了一种持久连接&#xff0c;在一个连接上可以双向传输数据。相比传统的HTTP协议&#xff0c;WebSocket具有更低的延迟和更高的效率。 WebSocket使用了类似于握手的方式来…...

2025年大年初一篇,C#调用GPU并行计算推荐

C#调用GPU库的主要目的是利用GPU的并行计算能力&#xff0c;加速计算密集型任务&#xff0c;提高程序性能&#xff0c;支持大规模数据处理&#xff0c;优化资源利用&#xff0c;满足特定应用场景的需求&#xff0c;并提升用户体验。在需要处理大量并行数据或进行复杂计算的场景…...

K8S ReplicaSet 控制器

一、理论介绍 今天我们来实验 ReplicaSet 控制器&#xff08;也叫工作负载&#xff09;。官网描述如下&#xff1a; 1、是什么&#xff1f; ReplicaSet 副本集&#xff0c; 维护一组稳定的副本 Pod 集合。 2、为什么需要&#xff1f; 解决 pod 被删除了&#xff0c;不能自我恢…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...