首页 > 系统相关 >文档生成工具:Linux下doxygen的使用

文档生成工具:Linux下doxygen的使用

时间:2023-12-22 17:11:19浏览次数:33  
标签:latex doxygen 是否 生成 HTML 文档 Linux

一、概述

Doxygen是一个代码文档生成工具。它从代码文件中提取注释并可生成多种文档形式。如:网页文档HTML,RTF (MS-Word),PDF等等。同时也可生成函数之间的调用和文件的依赖关系图表。

二、安装

平台:linux

sudo apt-get install doxygen 
sudo apt-get install graphviz
sudo apt-get install doxygen-latex
sudo apt-get install latex-cjk-*

doxygen 主要的处理程序
graphviz 生成如类继承关系的图片
doxygen-latex 用于将doxygen输出的latex转换为pdf
latex-cjk-* 转换pdf时,对中文字体的支持

注释:也可以使用htmlhelp将doxygen生成的网页文件转化为chm文件。

但是htmlhelp只能运行在windows下--拷出文件进行转换

三、使用

1、特定格式的批注撰写

简单示例

当前目录下新建main.cpp文件,添加符合要求的注释

/**
*@file   main.cpp
*@brief  This is the test zhushi
*@author circle
*@date   2023/7/15
*/
#include <iostream>

void test()
{
	std::cout << "hello\n";
}

int main()
{
	test();
}

2、生成配置文件

2.2 步骤

①生成配置文件的模板文件,名为Doxyfile

doxygen -g

②根据需要手动修改配置文件

修改点EXTRACT_ALL的值改成YES,如下,表示提取所有类和函数

EXTRACT_ALL            = YES

2.3 配置说明

需要设置的主要分为:文档格式、项目输入文件、输出文档类型

简单说明:

  1. PROJECT_NAME: 项目名称。
  2. PROJECT_VERSION: 项目版本。
  3. PROJECT_LANGUAGE: 项目使用的语言。
  4. INPUT: 包含源代码文件的目录。
  5. FILE_PATTERNS: 匹配哪些文件应该被 Doxygen 处理。
  6. EXTRACT_ALL: 是否提取所有类和函数。
  7. GENERATE_LATEX: 是否生成 LaTeX 格式的文档。
  8. HAVE_DOT: 是否可以使用 Graphviz 的 dot 工具来生成图表。
  9. CALL_GRAPH: 是否生成函数调用图。
  10. CALLER_GRAPH: 是否生成被调用函数图。
  11. WARNINGS: 是否显示警告信息。
  12. SOURCE_BROWSER: 是否显示源代码浏览器。
  13. INLINE_SOURCES: 是否在 HTML 文档中内联显示源代码。
  14. STRIP_CODE_COMMENTS: 是否去除源代码中的注释。
  15. GENERATE_HTML: 是否生成 HTML 格式的文档。
  16. HTML_OUTPUT: HTML 文档的输出目录。
  17. HTML_FILE_EXTENSIONS: HTML 文件扩展名。
  18. GENERATE_XML: 是否生成 XML 格式的文档。
  19. XML_OUTPUT: XML 文档的输出目录。
  20. XML_PROLOGUE: XML Prologue 的内容。
  21. GENERATE_LATEX: 是否生成 LaTeX 格式的文档。
  22. LATEX_OUTPUT: LaTeX 文档的输出目录。
  23. HAVE_BIBTEX: 是否可以生成参考文献。
  24. BIB_LATEX_STYLE: 参考文献的 LaTeX 样式。
  25. EXT_CALL_GRAPH: 是否为外部函数生成调用图

3、生成文档

①生成文档

在具有配置文件的目录下运行doxygen即可生成文档

doxygen

在输出目录中,已经有htmllatex两个目录

②生成pdf

make

执行生成动作:latex目录下有Makefile,在其路径下执行make 即可
生成的pdf文件为refman.pdf

查看pdf内容,不止有Content很丰富

注释

此处可修改配置文件以支持中文:https://blog.csdn.net/qq_30095135/article/details/129171919

四、图形化使用

1、安装

apt-get install doxygen-gui

参考:

1、https://zhuanlan.zhihu.com/p/556127320

2、windows:https://blog.csdn.net/qq_43331089/article/details/124489068

3、linux:https://blog.csdn.net/qq_30095135/article/details/129171919

标签:latex,doxygen,是否,生成,HTML,文档,Linux
From: https://www.cnblogs.com/circlelll/p/17922015.html

相关文章

  • 在 Linux 上以 All-in-One 模式安装 KubeSphere
    1、什么是KubeSphere KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的IT自动化运维能力,简化企业的DevOps工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)......
  • Linux安装pinpoint监控,保姆级安装攻略,没有之一
    Linux安装pinpoint监控,保姆级安装攻略,没有之一pinpoint介绍Pinpoint是一个开源的APM(ApplicationPerformanceManagement/应用性能管理)工具,用于基于java的大规模分布式系统,基于GoogleDapper论文。架构组成Pinpoint主要由四部分组成:Pinpoint-Collector:数据收集模块,接收Agent发......
  • Linux OpenGL (2) —— 创建窗口
    #编译命令写在前面:g++-ooutmain.cpplib/glad.c-lglfw-lGL-lm-lXrandr-lXi-lX11-lXxf86vm-lpthread-ldl-lXinerama-lXcursor初始化GLFW配置需要使用的OpenGL版本并启用核心开发模式//main.cpp#include<glad/glad.h>//glad头文件必须放在所有头......
  • linux环境下nginx配置http2
    由于项目需求,在nginx下支持http2协议,希望提升访问性能。除了介绍配置过程,在文章最后会记上过程中的困惑。准备工作nginx-1.19.2.tar.gzopenssl-1.0.2r.tar.gz(必须不低于1.0.2,否则不支持http2)以上文件上传到/usr/local目录下。开始安装安装nginx#解压openssl>tar-zxv......
  • Linux OpenGL (1)——环境搭建(GLFW, glad)
    所有代码和过程都已经过测试测试环境:UbuntuWSL18.04为什么需要GLFW和glad库我粗浅的理解:opengl并没有提供一些跨平台代码的实现细节,因此,需要根据不同的平台下载一些库来填充opengl中“空虚”的函数。如何安装GLFW和glad库安装GLFW#安装GLFWsudoapt-get......
  • QCN9024|Wallys DR9074-TRIBAND Now Supported by ATH11K for Enhanced Linux Compati
    QCN9024|WallysDR9074-TRIBANDNowSupportedbyATH11KforEnhancedLinuxCompatibility!WallysisthrilledtoannouncethatourDR9074-TRIBANDisnowsupportedbyATH11K.ThisnotonlyextendsitsusabilitybeyondQualcommplatformsbutopensdoorsforint......
  • 盘点Linux系统中常用的防火墙工具!
    防火墙是一种网络安全工具,它可以控制网络通信并保护系统免受网络攻击,因此Linux系统也会采用防火墙来保护自己免受攻击。那么Linux中常用的防火墙工具有哪些?以下是具体内容介绍。以下是几个常用的防火墙工具推荐:1、iptables:iptables是Linux上最常用的防火墙工具之一。......
  • Linux中大括号主要作用是什么?需要注意哪些?
    在Linux中,不同的括号有着不同的作用。那么Linux中的大括号代表什么意思?在Linux中,大括号是一种有着特定作用和用途的符号,其具有强大的扩展功能,可以帮助用户快速完成相关工具,接下来我们来看看具体的内容介绍。在Linux中,大括号用于扩展和重复命令、生成文件列表以及进行字符......
  • Linux内核在RISC-V架构下的spinlock实现
    riscv没有sev/wfe指令,当前无法在spinlock时省功耗,只能通过while循环不断检查条件。本文分析linux内核下对于spinlock的实现,具体到RISC-V体系结构。由于RISC-V体系结构下目前只是简单的实现了一个基于TAS的最基本的spinlock,本文的另一个附加任务就是分析Linux内核为各个平台下实......
  • linux下域名解析工具
    1、dig[root@hlcc_mastermysqlinit]#digwww.baidu.com;<<>>DiG9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13<<>>www.baidu.com;;globaloptions:+cmd;;Gotanswer:;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:723......