背景

在查找 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. #P1909 买铅笔 的题解

    题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起 见,P老师决定只买同一种包装的铅笔 ...

  2. Mysql 连接时的 option 含义

    官网文档: https://dev.mysql.com/doc/refman/5.7/en/mysql-real-connect.html

  3. wpf表单验证

    在做表单的,需要对User提交数据做验证,wpf与silverlight 都提供自带的验证机制,但是只是验证,并不能在提交时提供详细的信息,此时可使用 依赖属性将错误信息整合进自定义错误集合中,即可在 ...

  4. [PHP]PHP中申明 declare(strict_types=1)的作用

    strict_types=1 针对参数类型开启严格模式,进行数据类型检验,默认是弱类型校验哪个文件写了declare,哪个文件中的所有代码就需要检查 declare(strict_types=1); ...

  5. 2.1.1Remove Duplicates from Sorted Arr

    /* 题目:2.1.1 Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates in place ...

  6. 从数组A中删除在数组B中存在的元素,用C语言实现

    从数组A中删除在数组B中存在的元素,用C语言实现 考验数组操作的能力,C语言的熟练程度. //功能:从数组A中删除在数组B中也存在的数据 //输入:arrA --- 数组A // lenA --- 数 ...

  7. C语言的变量存储方式和生存期

    2020.2.28日,封城一个多月了,紧邻毕业期,我在家抽空学习一下C. 看到了变量的存储方式和生存期这一章节,下面就是我整理的内容 下面是用于理解静态局部变量这个概念所写的代码,主要是需要分析一下函 ...

  8. Kafka-JavaAPI(Producer And Consumer)

    Kafka--JAVA API(Producer和Consumer) Kafka 版本2.11-0.9.0.0 producer package com.yzy.spark.kafka; import ...

  9. android传递数据bundle封装传递map对象

    android开发默认情况下,通过Bundle bundle=new Bundle();传递值是不能直接传递map对象的,解决办法: 第一步:封装自己的map,实现序列化即可 ? 1 2 3 4 5 ...

  10. vue + element ui table表格二次封装 常用功能

    因为在做后台管理项目的时候用到了大量的表格, 且功能大多相同,因此封装了一些常用的功能, 方便多次复用. 组件封装代码: <template> <el-table :data=&qu ...