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

devtools/2025/2/2 9:20:41/

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注释规范

原文链接

在这里插入图片描述

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

原文链接

在这里插入图片描述


http://www.ppmy.cn/devtools/155398.html

相关文章

AI学习指南Ollama篇-使用Ollama构建自己的私有化知识库

一、引言 (一)背景介绍 随着企业对数据隐私和效率的重视,私有化知识库的需求日益增长。私有化知识库不仅可以保护企业数据的安全性,还能提供高效的知识管理和问答系统,提升企业内部的工作效率和创新能力。 (二)Ollama和AnythingLLM的结合 Ollama和AnythingLLM的结合…

玉米苗和杂草识别分割数据集labelme格式1997张3类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;1997 标注数量(json文件个数)&#xff1a;1997 标注类别数&#xff1a;3 标注类别名称:["corn","weed","Bean…

SpringBoot Web开发(SpringMVC)

SpringBoot Web开发&#xff08;SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样&#xff0c;是围绕前端控制器模式设计的&#xff0c;其中中央 Servlet DispatcherServlet 做整体请求处理调度&#xff01; . 除了DispatcherServletSpringMVC还会提供其他…

Easy系列PLC尺寸测量功能块ST代码(激光微距仪应用)

激光微距仪可以测量短距离内的产品尺寸,产品规格书的测量 精度可以到0.001mm。具体需要看不同的型号。 1、激光微距仪 2、尺寸测量应用 下面我们以测量高度为例子,设计一个高度测量功能块,同时给出测量数据和合格不合格指标。 3、高度测量功能块 4、复位完成信号 5、功能…

在RHEL 8.10上安装开源工业物联网解决方案Thingsboard 3.9

在RHEL/CentOS/Rocky/AlmaLinux/Oracle Linux 8单节点上安装 备注&#xff1a; 适用于单节点 是否支持欧拉&#xff1f;&#xff1f;&#xff1f; 前提条件 本指南描述了如何在RHEL/CentOS 7/8上安装ThingsBoard。硬件要求取决于所选的数据库和连接到系统的设备数量。要在单…

PyDeequ库在AWS EMR启动集群中数据质量检查功能的配置方法和实现代码

PyDeequ是一个基于Apache Spark的Python API&#xff0c;专门用于定义和执行“数据单元测试”&#xff0c;从而在大规模数据集中测量数据质量。 PyDeequ框架在PySpark代码中提供了全面的数据质量检查功能&#xff0c;能够帮助用户&有效地监控和提升大规模数据集的数据质量。…

基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发

基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发 摘要 随着人工智能技术的不断发展&#xff0c;语音识别在会议记录、语音笔记等场景中得到了广泛应用。本文介绍了一个基于Python和阿里云百炼大模型的语音识别与文本保存工具的开发过程。该工具能够高效地识别东…

[JavaScript] ES6及以后版本的新特性

文章目录 箭头函数&#xff08;Arrow Functions&#xff09;为什么需要箭头函数&#xff1f;箭头函数的完整语法箭头函数中的 this实用场景 解构赋值&#xff08;Destructuring Assignment&#xff09;为什么需要解构赋值&#xff1f;数组解构赋值的完整用法对象解构赋值的完整…