背景

在查找 ffmpeg 文档的时候,发现其文档是根据 Doxygen 生成的。
为了学习方便,这里以 生成 ffmpeg 4.1 文档 为例。

注:为了兼顾 arm 与 host ,本人选择了同时都支持的 ffmpegv.4.0.1。此后的学习都以此为版本。

Doxygen简介

官方网站: http://www.doxygen.nl/index.html

Doxygen是一个程序的文档产生工具,可以将程序中的注释转换成说明文档或者说是API参考手册,从而减少程序员整理文档的时间。当然这里程序中的注释需要遵循一定的规则书写,才能让Doxygen识别和转化。

目前Doxygen可处理的程序语言包含C/C++、Java、Objective-C、IDL等,可产生出来的文档格式有HTML、XML、LaTeX、RTF等,此外还可衍生出不少其它格式,如HTML可以打包成CHM格式,而LaTeX可以通过一些工具产生出PS或是PDF文档等。

Doxygen 安装及使用

下面以 Windwos 的安装(除了需要设置环境变量以外,无需特别设置)与使用为例

安装列表:
Doxygen: 下载地址,http://doxygen.nl/files/doxygen-1.8.17-setup.exe

HTML Help:微软官方用于生成HTML格式的help文件,下载地址,http://go.microsoft.com/fwlink/p/?linkid=14188

Graphviz:一种dot工具可以用来渲染出效果更好的图表,下载地址,https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi

安装完成以后,将 dot.exe 所在目录(例如:"C:\Program Files (x86)\Graphviz2.38\bin")加入系统环境变量中。

基于 Doxygen 的设置

Doxygen 有命令行(CMD tool)工具以及界面化(GUI)工具2种。Windows 下常用 界面 设置。

打开 Doxywizard (Doxygen GUI fronted)

根据实际情况填写以下位置,点击next。

注意,文件路径不要有中文路径,在C盘运行程序的时候,需要有执行权限。
要勾选 Scan recursively

Mode 设置模式

Select the desired extraction mode

  1. 选择 All Entities
  2. 勾选 Include cross-referenced source code in the ouput

Select programing languge the optimize the results for :

根据实际项目的需要选择对应的语言

选择:Optimize for C or PHP output

点击next

Oputput 设置输出

Select the output format(s) to generate

  1. 勾选HTML
  2. 选择:prepare for compressed HTML(.chm)

不勾选 Latex

这里不打算使用 LaTex 工具进行输出 有关文档。

点击next

Diagrams 设置图例

Diagrams to generate
选择 Use built-in class diagram generator
勾选Dot graphs to generate所有项目

点击next

Run doxygen

经过上一步以后,此时应该是跳转到了Expert 选项卡,不理它,选择Run 选项卡。

Expert 选项卡可以实现更加细致的参数设置,一般用在支持中文编码等方面上。

点击 Run doxygen,经过漫长的编译,生成文件在工程 doc/html/xxx.chm (xx 代表项目名称)

也可以点击 Show HTML output 查看生成的本地文档

使用 Doxygen 生成文档 (以FFmpeg 4.1.1 为例)的更多相关文章

  1. 用Doxygen生成文档

    我是生成C/C++的文档,输出html格式的文档.就不做成CHM了. 注释要这种写:(当然,有数种注释风格,选择任意你喜欢的就行) /** * * 一系列的doxygen的 command * * * ...

  2. doxygen的使用(一)配置并生成文档

    原创文章,欢迎阅读,禁止转载. doxygen是个好用的文档生成工具,他的强大功能有很多介绍,我就不说了.自带的chm帮助手册很全面,包括功能.注释规范.怎么配置.工具用法等.doxygen的用法共3 ...

  3. 用doxygen自动生成文档

    1. 添加符合doxygen解析规则的注释 (比如函数说明,函数参数/返回值说明) 用qt-creator可以在函数上方一行键入“/**”,然后直接回车,就可以自动生成默认的格式. 2. 安装doxy ...

  4. linux c/c++ 代码使用 doxygen 自动生成文档

    www.doxygen.org 的使用非常方便,下面分成2步介绍一下 1. 注释风格,需要在c/c++代码中按照下面的风格添加注释,基本上还是很顺手的 C++的注释风格 主要使用下面这种样式:即在注释 ...

  5. 为Unity项目生成文档(二)

    Unity项目生成文档 接着上篇文章:为Unity项目生成文档(一) .Net项目可在VS配置XML 我们可以在VS中通过配置来生成xml文件,但是unity的project,就算同样配置了xml文档 ...

  6. xcode 自动添加注释,生成文档

    一.自动生成注释代码        添加一个快捷键,生成 注释代码        ThisService 下载连接:http://wafflesoftware.net/thisservice/     ...

  7. 使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)

    对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战.在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你 ...

  8. 使用Ldoc给Lua生成文档

    Ldoc介绍 LDoc是一个Lua的文档生成工具,过去,比较常用的Lua生成文档的工具是LuaDoc,可惜作者自从2008年之后就再也没有发布过新的版本了,说明作者基本上已经放弃维护了.而LDoc则是 ...

  9. 使用PhpDocumentor生成文档

    一,网站根目录执行 $ composer require --dev phpdocumentor/phpdocumentor 二,进入vendor/bin/目录执行 $phpdoc -d D:\ser ...

随机推荐

  1. Python下opencv使用笔记(十一)(详解hough变换检测直线与圆)

    http://blog.csdn.net/on2way/article/details/47028969 http://blog.csdn.net/mokeding/article/details/1 ...

  2. Tomcat访问控制及站点部署(以WAR包形式上传)!(重点)

    访问控制 首先安装好jdk以及apache-tomcat并能访问tomcat网页 点击server status了解服务状态会报403的错误 第一步:修改user.xml配置文件 [root@loca ...

  3. Java中短路

    当使用逻辑运算符时,我们会遇到一种“短路”的现象.即一旦能够准确无误的确定整个表达式的值,就不再计算表达式余下的部分了.因此整个表达式靠后的部分有可能不被运算 /**短路 * @param args ...

  4. 通过getGeneratedKeys获取记录的主键

    Connection con=null; PreparedStatement ps=null; ResultSet rs=null; try { //建立连接 con= JDBCUtils.getCo ...

  5. Navigation源码(一) move_base最全解析

    一.概述 目测是全网最全的解析,花了几个小时通读并整理的,供大家参考学习. 概况的话可以看下古月居 https://www.guyuehome.com/270,其实它是翻译官方的,英语ok的可以去ro ...

  6. SpringMVC 注解配置

    使用注解配置spring  mvc (1)spring mvc的配置文件 <?xml version="1.0" encoding="UTF-8"?> ...

  7. windows下pycharm连接vagrant的python环境

  8. Ubuntu系统为MySQL开启远程连接

    第一步:确保 Ubuntu 系统已经安装上了MySQL数据库.登陆数据库 ,运行如下命令: mysql -u 用户名 -p 然后输入密码,此时登录成功 第二步:创建用户用来远程连接,运行如下命令: G ...

  9. 数字对象NSNumber的使用

    先简述下关于NSNumber的信息 NSNumber的存在就相当于java中的装箱与拆箱.只不过java中的装箱拆箱过程,使用的是对应的类型,比如基本数据类型是int.double类型,装箱时就得对应 ...

  10. Servlet(1):request和response对象

    1.Servlet的生命周期 /** * Servlet的生命周期: * 1.从第一次调用到服务器关闭. * 2.如果Servlet在web.xml中配置了load-on-startup,生命周期为从 ...