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

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

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

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

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

bash 复制代码
sudo apt-get install graphviz

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

验证查看一下版本:

bash 复制代码
$ doxygen --version
1.9.1

2)方法二:

采用源码编译,则需要先下载源码,源码下载地址,点这里

https://github.com/doxygen/doxygen/releases


执行如下命令

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

添加到环境变量中

bash 复制代码
vim .bashrc
export PATH=$HOME/DOXYGEN/bin:$PATH

查看一下安装情况

bash 复制代码
doxygen --version

2. doxygen注释自动生成插件

  1. IDE中安装doxygen注释辅助生成插件
    正式标注前,介绍一款VsCode下的doxygen插件Doxygen Documentation Generator

    2)配置插件的一些默认参数
    首先配置注释提示块的触发快捷方式,默认是/**触发的,打开插件面板,找到Doxygen Documentation 插件,点击配置图标,找到到Extension Settings

    修改为如下///,当然,不修改使用默认的/**也是可以的

    采用默认的///触发效果,在函数头输入///按下回车后如下:

    采用默认的/**触发效果:

    此外,还有很更多的默认参数,根据自己的需要进行配置,可以极大的提高效率,避免写注释时,大量的复制粘贴操作,如下可配置默认的作者、邮箱等;

    可在配置中,修改如下内容

    注意,上面的注释辅助生成插件不是必须的,不同的IDE环境,可能有不同的插件;即使不安装这个,也不影响doxygen的使用,只是需要手动按doxygen的注释语法,逐一手动输入即可;

3. doxygen注释基本语法

cpp 复制代码
/**
 * @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的配置文件,使用如下命令:

bash 复制代码
doxygen -g # 默认创建文件名为Doxyfile
# doxygen -g dox-config-file # 指定文件名

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

以下是一些常用的Doxyfile配置选项:

执行生成命令,生成文档

bash 复制代码
# 指定默认配置文件Doxfile,生成文档
doxygen Doxyfile

默认情况下,将生成两类文档html、latex

如无需要latex可在Doxyfile配置文档中配置GENERATE_LATEX = NO后,如下所示

完成!

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

原文链接

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

(2) 配置插件

设置->settings.json, 编辑 settings.json文件,添加如下内容

c 复制代码
    // 注释
    "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语法插件

在函数前输入

cpp 复制代码
/**

回车,就可以自动出现需要填写的内容.

但是clion的插件只对函数有用, 对文件开头没有用,那就自己添加吧.

(4) Build选型关键设置

Chapter3 Doxygen注释规范

原文链接

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

原文链接

相关推荐
wen__xvn1 小时前
每日一题洛谷B3865 [GESP202309 二级] 小杨的 X 字矩阵c++
c++·算法·矩阵
makabaka_T_T1 小时前
25寒假算法刷题 | Day1 | LeetCode 240. 搜索二维矩阵 II,148. 排序链表
数据结构·c++·算法·leetcode·链表·矩阵
学游戏开发的2 小时前
UE求职Demo开发日志#19 给物品找图标,实现装备增加属性,背包栏UI显示装备
c++·笔记·游戏引擎·unreal engine
c-c-developer3 小时前
C++ Primer 标准库类型string
开发语言·c++
生活最重要(ง •̀_•́)ง3 小时前
[ESP32:Vscode+PlatformIO]新建工程 常用配置与设置
vscode·esp32·arduino·platformio
Bluesonli3 小时前
第 2 天:创建你的第一个 UE5 C++ 项目!
c++·学习·ue5·虚幻·虚幻引擎·unreal engine
比特在路上4 小时前
蓝桥杯之c++入门(四)【循环】
c++·职场和发展·蓝桥杯
pay顿4 小时前
C++基础day1
c++·学习·笔试
孤寂码农_defector4 小时前
C++【iostream】数据库的部分函数功能介绍
c++