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插件方法]

原文链接

在这里插入图片描述

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

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

相关文章

Java内存模型 volatile 线程安全

专栏系列文章地址&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标&#xff1a; 认识JMM认识volatile关键字&#xff1a;可见性和顺序性理解线程安全的概念 目录 Java内存模型可见性例子和volatilevolatile如何保证可见性原子性与单例模式…

【Proteus仿真】【51单片机】多功能计算器系统设计

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、LCD1602液晶显示 2、矩阵按键​ 3、加减乘除&#xff0c;开方运算 4、带符号运算 5、最大 999*999 二、使用步骤 基于51单片机多功能计算器 包含&#xff1a;程序&…

three.js+WebGL踩坑经验合集(4.1):THREE.Line2的射线检测问题(注意本篇说的是Line2,同样也不是阈值方面的问题)

上篇大家消化得如何了&#xff1f; 笔者说过&#xff0c;1级编号不同的两篇博文相对独立&#xff0c;所以这里笔者还是先给出完整代码&#xff0c;哪怕跟&#xff08;3&#xff09;没有太大区别。 这里我们把线的粗细调成5&#xff08;排除难选中的因素&#xff09;&#xff…

SAP内向交货单详解

【SAP系统研究】 #SAP #交货单 #内向交货单 一、内向交货单的概念 内向交货单,Inbound Delivery,是SAP系统中用于管理外部供应商或内部工厂向公司发货的文档。它记录了货物从供应商到公司仓库或生产地点的运输和接收过程。 内向交货单的主要功能有: (1)货物接收:用于…

扩展无限可能:Obsidian Web Viewer插件解析

随着 Obsidian 1.8.3 正式版的发布&#xff0c;备受期待的官方核心插件——Web Viewer 也终于上线。本文将从插件启用、设置以及应用场景三个方面详细介绍如何使用这一新功能&#xff0c;和大家一起更好地利用 Obsidian 进行内容管理和知识整理。 插件启用 Web Viewer作为官方…

如何在 ACP 中建模复合罐

概括 本篇博文介绍了 ANSYS Composite PrepPost (ACP) 缠绕向导。此工具允许仅使用几个条目自动定义高压罐中常见的悬垂复合结构。 ACP 绕线向导 将必要的信息输入到绕组向导中。重要的是要注意“参考半径”&#xff0c;它代表圆柱截面的半径&#xff0c;以及“轴向”&#x…

本地搭建deepseek-r1

一、下载ollama(官网下载比较慢&#xff0c;可以找个网盘资源下) 二、安装ollama 三、打开cmd&#xff0c;拉取模型deepseek-r1:14b(根据显存大小选择模型大小&#xff09; ollama pull deepseek-r1:14b 四、运行模型 ollama run deepseek-r1:14b 五、使用网页api访问&#x…

OpenCV:闭运算

目录 1. 简述 2. 用膨胀和腐蚀实现闭运算 2.1 代码示例 2.2 运行结果 3. 闭运算接口 3.1 参数详解 3.2 代码示例 3.3 运行结果 4. 闭运算的应用场景 5. 注意事项 相关阅读 OpenCV&#xff1a;图像的腐蚀与膨胀-CSDN博客 OpenCV&#xff1a;开运算-CSDN博客 1. 简述…

Docker技术简介

Docker容器技术 一、认识Docker容器技术和镜像仓库 容器 容器是一种轻量级、可移植、自包含的软件运行环境,允许多个应用程序在同一个操作系统实例上独立运行,而不会互相干扰。想必大家有点不好理解,那么 利用通俗易懂的方式概述容器: 想象一下,你有一个应用程序,但是这…

Windows程序设计9:文件的读写操作

文章目录 前言一、文件的写操作WriteFile1.WriteFile介绍2.WriteFile实例二、文件的读操作ReadFile1.ReadFile简介2.ReadFile实例总结前言 Windows程序设计9:文件的读写操作。 一、文件的写操作WriteFile 1.WriteFile介绍 从文件指针指向的位置开始,将数据写入到一个文件中…

AJAX笔记入门篇

黑马程序员视频地址&#xff1a; 黑马程序员前端AJAX入门到实战全套教程https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p2https://www.bilibili.com/video/BV1MN411y7pw?vd_source…

洛谷 P10288 [GESP样题 八级] 区间 C++ 完整题解(STL二分法)

本文并非最优解&#xff0c;但能通过。 一、题目链接 P10288 [GESP样题 八级] 区间 - 洛谷 二、解题思路 **本题的大意就是求出a[l~r]间x出现的次数&#xff0c;由于数据较大、较多&#xff0c;所以暴力容易超时。** 首先新建一个mp&#xff0c;mp[x]是一个vector&#xff0c;里…

springboot集成钉钉,发送钉钉日报

目录 1.说明 2.示例 3.总结 1.说明 学习地图 - 钉钉开放平台 在钉钉开放文档中可以查看有关日志相关的api&#xff0c;主要用到以下几个api&#xff1a; ①获取模板详情 ②获取用户发送日志的概要信息 ③获取日志接收人员列表 ④创建日志 发送日志时需要根据模板规定日志…

android主题设置为..DarkActionBar.Bridge时自定义DatePicker选中日期颜色

安卓自定义DatePicker选中日期颜色 背景&#xff1a;解决方案&#xff1a;方案一&#xff1a;方案二&#xff1a;实践效果&#xff1a; 背景&#xff1a; 最近在尝试用原生安卓实现仿element-ui表单校验功能&#xff0c;其中的的选择日期涉及到安卓DatePicker组件的使用&#…

学习串行通信

本文来源&#xff1a; [8-1] 串口通信_哔哩哔哩_bilibili 智谱清言 ------------ 串口&#xff08;Serial Port&#xff09;&#xff1a; 串口是一种应用非常广泛的通讯接口&#xff0c;串口成本低&#xff0c;容易使用&#xff0c;通信线路简单&#xff0c;可实现两个设…

【memgpt】letta 课程4:基于latta框架构建MemGpt代理并与之交互

Lab 3: Building Agents with memory 基于latta框架构建MemGpt代理并与之交互理解代理状态,例如作为系统提示符、工具和agent的内存查看和编辑代理存档内存MemGPT 代理是有状态的 agents的设计思路 每个步骤都要定义代理行为 Letta agents persist information over time and…

(二)QT——按钮小程序

目录 前言 按钮小程序 1、步骤 2、代码示例 3、多个按钮 ①信号与槽的一对一 ②多对一&#xff08;多个信号连接到同一个槽&#xff09; ③一对多&#xff08;一个信号连接到多个槽&#xff09; 结论 前言 按钮小程序 Qt 按钮程序通常包含 三个核心文件&#xff1a; m…

SpringCloudGateWay和Sentinel结合做黑白名单来源控制

假设我们的分布式项目&#xff0c;admin是8087&#xff0c;gateway是8088&#xff0c;consumer是8086 我们一般的思路是我们的请求必须经过我们的网关8088然后网关转发到我们的分布式项目&#xff0c;那我要是没有处理我们绕过网关直接访问项目8087和8086不也是可以&#xff1…

玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…