ubuntu 下使用doxygen为C/C++工程生成pdf版的API

Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成 Doxygen 是一个由 C++ 编写的、开源的、跨平台的文档生成系统。最初主要用于生成 C++ 库的 API 文档,但目前又添加了对 C、C#、Java、Python、Fortran、PHP 等语言的支持。其从源代码中提取注释,并生成多种输出格式,如HTML、PDF、LaTeX、RTF等,以帮助开发者创建易于阅读和理解的代码文档。Doxygen 简化了另行编写文档带来的重复性劳动,将代码和文档的工作合二为一。经过 10 年的迭代,Doxygen 成为了 C/C++ 项目首选的文档生成工具。 阅读详情

1. 安装doxygen相关软件

sudo apt-get install doxygen

sudo apt-get install graphviz

来安装相应的工具。
    安装完成后,先参考IBM的 学习用 doxygen 生成源码文档。
    现在,我们开始让Doxygen为我们工作了。
2.生成配置文件Doxyfile

在shell中运行doxygen -g,在当前目录产生Doxyfile,该配置文件全部是默认值;
3. 修改配置文件(文件很长):

给自己的工程取个名吧
PROJECT_NAME           = Hello
做个版本号标识
PROJECT_NUMBER         = 1.0
文档输出路径一定要设置
OUTPUT_DIRECTORY       = /yourpath
产生的文档文件分子目录,否则一个目录下会有巨多的文件,烦!
CREATE_SUBDIRS         = YES
我是不喜欢在文件中显示文件的全路径:)
FULL_PATH_NAMES        = NO
SHORT_NAMES            = YES
文档显示方法问题,我喜欢这种风格
JAVADOC_AUTOBRIEF      = YES
这两个是针对C和JAVA的信息输出优化
OPTIMIZE_OUTPUT_FOR_C  = YES
OPTIMIZE_OUTPUT_JAVA   = YES
将哪些符号、函数等导出
EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = YES
EXTRACT_STATIC         = YES
EXTRACT_LOCAL_METHODS  = YES
对于没有名字域区别的C,还是选上这种吧
EXTRACT_ANON_NSPACES   = YES
源代码输入路径
INPUT                  = /yourpath
哪些文件选入Doxygen的范围,不选就是默认的C和C++的文件类型
FILE_PATTERNS          =
当然递归识别我指定路径下的源代码
RECURSIVE              = YES
我喜欢在文档中浏览源代码
SOURCE_BROWSER         = YES
为制作CHM作准备,只是制作CHM好像只有在Windows下
GENERATE_HTMLHELP      = YES
喜欢LATEX,也喜欢HTML
GENERATE_LATEX         = YES
GENERATE_HTML          = YES
图表化调用关系等
HAVE_DOT               = YES
CALL_GRAPH             = YES
CALLER_GRAPH           = YES
Ubuntu下不用指定的,安装graphviz后,自动加入到shell环境变量中了。
DOT_PATH               = /usr/bin
你想描绘的调用关系的深度,好像5级比较合适
MAX_DOT_GRAPH_DEPTH    = 5

4. 现在执行doxygen Doxyfile就可以看结果了

5. 安装中文latex环境

首先安装texlive(额, 这个有点大, 我装的时候提示几百兆)

sudo apt-get install texlive-full 

然后安装cjk的一些东西

sudo apt-get install latex-cjk-chinese*
sudo apt-get install cjk-latex

6. 修改前面doxygen Doxyfile生成的latex文件:refman.tex

将其中的:

\begin{document}

改为:

\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{gbsn}

并将其中的:

\end{document}

改为:

\end{CJK}
\end{document}

以上操作是声明使用CJKutf8的包, 并用CJK将document段括起来.

7. 在latex文件夹下执行make就行了,找到输出的pdf文件。

VS Code集成Doxygen:自动化代码文档生成与高效开发实践 代码文档是软件开发中实现团队协作与知识传承的关键环节,其核心价值在于提升代码可读性、可维护性并降低沟通成本。传统上,开发者需要借助外部工具(如Doxygen)解析特定格式的注释来生成结构化文档,但这一过程往往与编码环境分离,导致工作流中断。通过将文档生成能力深度集成到VS Code这类现代IDE中,可以实现从代码编写到文档维护的无缝衔接。这种集成方案通过提供智能代码片段、一键生成与预览、以及配置管理等功能,显著提升了开发效率,尤其适用于追求工程实践质量的C++、Python等项目的持续集成场景。本文聚焦于如 阅读详情

相关推荐

VS Code Doxygen插件:自动化代码文档生成与团队协作实践

代码文档是软件工程中保障可维护性与团队协作的关键环节,其核心在于将代码的设计意图、接口规范和使用约束以结构化形式记录下来。传统手动编写文档注释效率低下且易出错,而Doxygen作为一种广泛使用的文档生成系统,通过解析源代码中的特殊注释标签,能自动生成格式统一的API文档。其技术价值在于将文档编写无缝嵌入开发流程,显著提升代码可读性和项目交接效率。在实际应用场景中,开发者常借助编辑器插件来简化Doxygen注释的编写,例如VS Code的Doxygen Documentation Generator插件,它通

weixin_30920853的博客 462

ubuntu22.04 doxygen生成中文pdf文档

ubuntu22.04 doxygen生成中文pdf文档

weixin_52626383的博客 1232

VS Code集成Doxygen:自动化代码文档生成与团队协作实践

代码文档是软件工程中保障可维护性与团队协作效率的关键环节。其核心原理在于通过规范化的注释语法,将代码意图、接口契约和设计思想结构化地提取出来,形成可读性强的外部文档。传统文档工具如Doxygen,通过解析源代码中的特殊注释标签(如@param、@return),自动生成HTML、PDF等多种格式的API文档,从而将开发者从繁琐的手动维护中解放出来,确保文档与代码同步。这一技术对于提升长期项目维护性、降低新人上手成本具有重要价值,广泛应用于大型C/C++、Java及多语言混合项目的API说明、架构图生成等场景

weixin_34242331的博客 347

Windows下使用Doxygen 生成C代码注释文件

在 Visual Studio 2022 中使用 Doxygen 注释生成 C 代码的 PDF 文档

freshman1900的博客 909

Eigen 3.1.1 CHM文档:C++线性代数库离线高效查询指南

在C++高性能数值计算领域,线性代数库是处理矩阵运算、几何变换和机器学习算法的基石。其核心原理在于通过模板元编程和表达式模板技术,在编译期优化运算表达式,实现接近手写汇编的运行时效率,这对于机器人学、计算机图形学等对性能要求苛刻的工程实践至关重要。为了最大化这类库的技术价值,开发者需要能够快速、精准地查阅API文档,理解模板参数、成员函数的时间复杂度及注意事项,以优化代码性能和避免常见陷阱。然而,在线文档依赖网络、检索效率低下,严重影响了开发流程。针对这一应用场景,将官方文档编译为CHM格式的离线帮助文件,

weixin_33843947的博客 517

PCL点云库从入门到精通:环境配置、核心算法与项目实战全指南

点云作为三维空间数据的基本表示形式,是三维视觉、机器人感知和自动驾驶等领域处理环境感知与物体建模的核心数据。其处理原理涉及对海量三维点的滤波、特征提取、配准与分割,技术价值在于能将无序的离散点转化为可用于识别、重建和导航的结构化信息。在三维重建、目标识别、SLAM和工业检测等应用场景中,高效处理点云是关键。本文聚焦于PCL(Point Cloud Library)这一开源工具库,针对**PCL 1.14.1环境配置**和**C#调用C++ PCL模块**等常见工程挑战,提供从基础环境搭建到核心算法实践的系统

weixin_30856725的博客 391

C++编辑修改PDF

PDF文档创建,PDF文件写入,PDF文件修改,PDF文件插入图像,PDF文件插入文本

Flywithdawn的博客 2898

Ubuntu系统下搭建C(C++)开发环境 (1).pdf

Ubuntu系统下搭建C(C++)开发环境

linux ubuntu下怎样将pdf格式文件转换为doc格式文件,Ubuntu环境下把word文档转成pdf,把pdf文件转成jpg...

环境搭建使用语言 python3安装imagemagick(pdf转jpg是内部需要调用到此工具)apt-get install imagemagick安装libreoffice(此工具用于将word文档转化成pdf文件)apt-get install libreoffice安装python wand,PIL库pip installwandpip installPILPDF转JPG先转png,...

weixin_31539351的博客 949

计算机网络实验——入侵检测系统实验

在图1所示的网络结构中,此方案的具体实施:在路由器Router1的接口1出方向配置入侵检测策略,在收到ICMP ECHO请求包时,丢弃并同步向日志服务器报告警告,此时,终端PC2和PC3无法对终端PC0和PC1执行ping操作,并且日志服务器将记录相应的警告信息;在实验一的基础上,添加扩展分组过滤器,指定需要进行检测的信息流的类别,将扩展分组和对应的入侵检测规则进行绑定,使得只对特定的信息流进行入侵检测。加载指定类别的特征库,这里的指定类别是 ios_ips 类别中的 basic 子类别。

放放的博客 1562

从零到一:Silvaco中跨导曲线的自动化脚本实现

本文详细介绍了如何使用Python脚本在Silvaco中实现跨导曲线(gm曲线)的自动化分析,包括数据加载、跨导计算和结果可视化。通过自动化处理Id-Vg曲线,显著提升半导体器件工程师的工作效率,特别适用于工艺优化和DOE分析。文章还提供了批量处理和关键参数提取的高级技巧,帮助工程师快速掌握Silvaco脚本开发。

nn3456的博客 565

ubuntu 使用libreoffice 进行word转pdf

libreoffice的安装 https://mirrors.tuna.tsinghua.edu.cn/libreoffice/libreoffice/stable 使用此镜像源获取 LibreOffice_6.3.4_Linux_x86-64_deb.tar.gz LibreOffice_6.3.4_Linux_x86-64_deb_langpack_zh-CN.tar.gz 解压后执...

qq_35860612的博客 1435

“傻瓜”学计量——双重差分DID3(多期双重差分原理+解决方案CSDID原理)

“傻瓜”学计量——双重差分DID3(多期双重差分原理+解决方案CSDID原理)

nnpersistent的博客 5054

Ubuntu系统使用Doxygen生成文档

1 简介:   Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统. Doxgen可以从一套源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。LATEX也可以转成PDF. Doxygen 的使用可分为两大部分。首先是特定格式的批注撰写,第二便是利用Doxygen的工具来产生文件。 1.1 语言支持 C/C++JavaObjectiv

u012369385的专栏 5867

CPLD新手必看:安路EF2系列配置与烧录的避坑指南(含完整流程)

本文为CPLD新手提供了安路EF2系列芯片从硬件设计到软件烧录的完整避坑指南。重点解析了电源系统、时钟复位、JTAG接口等关键电路设计要点,并详细介绍了使用TD软件进行工程创建、代码编写、引脚分配及程序烧录的全流程,帮助开发者快速上手并规避常见问题。

weixin_29217235的博客 341

药物吸收仿真软件:Caco-2_(9).Caco-2模型在药物开发中的案例分析

通过以上五个案例,我们可以看到Caco-2模型在药物开发中的重要作用。它不仅能够帮助我们预测药物的肠道吸收情况,还能够用于优化药物配方、评估代谢稳定性、研究药物相互作用以及转运蛋白的影响。这些体外实验和仿真分析的结果为药物的进一步临床研究提供了重要的参考依据,有助于缩短药物开发周期,提高研发效率。

kkchenjj的博客 863

vscode 的tab与空格设置 ,vscode使用sftp配置 ,vscode代码补全插件

vscode默认就是一个tab=4个空格,若想要修改请进入seting里面设置。3.也可以选择:将缩进转换为制表符,然后保存即可。目前使用shell-format。目前使用Clang格式化风格。

喜欢打篮球的普通人 1万+

081、LLC谐振变换器的短路特性与保护

本文深入分析了LLC谐振变换器在短路工况下的特性与保护策略。作者通过实际案例指出,LLC在输出短路时会出现谐振电流失控、ZVS条件丧失等危险现象,导致MOS管炸毁。文章详细阐述了短路保护的三大难点:响应速度、频率与电流的耦合、重启策略,并提出了硬件级快速保护、频率快速拉升、打嗝模式等实用解决方案。作者分享了关键参数设计经验,包括电流检测阈值设置、最高频率限制和保护响应时间控制,并通过实测波形验证了保护效果。最后总结出五点重要经验,强调硬件保护的必要性和系统设计的注意事项,为LLC变换器的短路保护设计提供了有

Jack010169的博客 71

C++函数设计实战:从语法到工程化程序设计

函数是程序设计的基本逻辑单元,其本质是封装可复用、可测试、职责单一的计算行为。理解参数传递机制(值/引用/const引用)、返回值语义(void/值/引用)与异常分类(logic_error/runtime_error),是构建健壮C++系统的前提。现代C++函数设计强调接口契约、跨平台可移植性与RAII资源管理,直接支撑排序算法实现、回调机制演进及模块化架构落地。本文聚焦C++实验1级真实训练场景,覆盖VSCode环境配置、Catch2单元测试、常见悬垂指针与未初始化变量排查,帮助初学者跨越‘能跑通’到‘

weixin_34377919的博客 485

基于ESP32 蓝牙游戏手柄设计

介绍使用 ESP32 并通过 BLE 通信的 设计手持游戏手柄,包含原理图与代码

DT程序员的博客 2163

医疗影像分析实战:肺炎X光片分类与分割

医疗影像分析实战:肺炎X光片分类与分割 ,人工智能,计算机视觉,大模型,AI,在医疗领域,医疗影像分析技术凭借其高效、精准的特点,成为疾病诊断与治疗的重要辅助手段。肺炎作为一种常见的呼吸道疾病,严重威胁人类健康,通过 X 光片对肺炎进行诊断是临床常用方法。利用计算机技术实现肺炎 X 光片的自动分类与分割,不仅能减轻医生的工作负担,还能提高诊断的准确性和效率。本文将深入讲解肺炎 X 光片分类与分割的实战过程,结合大量代码示例和关键概念解析,帮助读者掌握相关技术。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

大规模3D数据处理框架的文档化挑战与现代化解决方案

在现代3D数据处理与可视化领域,Open3D作为一款开源库面临着复杂的技术文档化挑战。随着项目规模的不断扩大,代码库包含超过50万行C++和Python代码,涵盖从底层几何处理到高级机器学习集成的完整技术栈。传统的手动文档维护方式已无法满足快速迭代的需求,文档与代码同步的技术债务问题日益凸显。本文深度解析Open3D如何通过创新的自动化文档生成架构,实现代码与文档的实时同步,为大型开源项目提供可复

gitblog_00397的博客 981

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Ubuntu16.04安装配置Pangolin

github源码首页:https://github.com/stevenlovegrove/Pangolin.git 一、安装依赖 1、必备依赖 (1) C++ (2)OpenGL(参考https://www.jianshu.com/p/e4a90503d4a6) sudo apt-get install build-essential libgl1-mesa-dev sudo apt...

不能不恰饭 3662

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

QT跨平台开发框架安装与配置全指南

QT作为跨平台C++ GUI开发框架,通过其强大的信号槽机制和元对象系统实现高效界面开发。其核心价值在于一次编写多平台部署的能力,大幅降低Windows、Linux和macOS多平台适配成本。开发者在工业控制、嵌入式系统和金融交易等领域广泛应用QT框架时,首先需要完成正确的环境安装与配置。本文以QT 5.15.2为例,详细解析Windows平台MSVC编译环境配置、Linux下gcc工具链集成以及macOS的Xcode环境准备等关键技术要点,特别针对国内开发者提供了清华镜像源加速方案。通过正确配置QTDIR

weixin_34234721的博客 435

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

开源不是代码公开,而是可验证的行为契约

开源本质上是一种技术实践范式,其核心在于源代码的可获取性、可构建性与可修改性,而非简单发布。它依托GPL、MIT、Apache等许可证构成法律与工程双重约束,强调自由使用、自由修改和自由分发三大行为准则。在嵌入式、AI模型库及云原生等真实场景中,开源的价值体现为CI/CD自动化验证能力、文档完备性与社区响应SLA等健康度指标。忽视这些实践细节,将导致‘伪开源’——如二进制封闭、构建失败或许可证违规。本文聚焦开源落地中的关键误判与工程化路径,揭示从GitHub托管到产线级可信交付的完整闭环。

weixin_30617737的博客 339
上一篇: ROS支持的基本数据类型
下一篇: 一文搞定Docker的原理及操作
土豆西瓜大芝麻
博客等级 码龄18年 1189粉丝 238原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值