Doxygen使用介绍
Doxygen的主頁(yè)為http://doxygen.nl/,它的license為GPL,最新發(fā)布版本為1.8.17,源代碼存放在https://github.com/doxygen/doxygen,它支持的語(yǔ)言包括C、C++、Objective-C、C#、Java、Python等,它支持的系統(tǒng)平臺(tái)包括Winodws、Linux、MacOS等。你既可以通過(guò)源碼編譯安裝,也可以直接通過(guò)二進(jìn)制文件安裝,可從http://www.doxygen.nl/download.html 直接下載二進(jìn)制文件。
Doxygen是文檔生成工具,用于從帶注釋的C++等語(yǔ)言源碼中生成文檔。它可產(chǎn)生的文檔格式包括HTML、LaTex、xml等。該文檔直接從源代碼中提取,這使得文檔和源代碼保持一致變得很容易。你可以配置Doxygen使其從未記錄的源文件中提取代碼結(jié)構(gòu)(You can configure doxygen to extract the code structure from undocumented source files)。Doxygen還可以通過(guò)包括依賴圖、繼承圖和協(xié)助圖來(lái)可視化各個(gè)元素直接的關(guān)系,所有這些圖都是自動(dòng)生成的。你也可以使用Doxygen來(lái)創(chuàng)建常規(guī)文檔。
Doxygen使用步驟:
(1). 以下以Windows平臺(tái)為例,介紹其使用,這里主要關(guān)心怎么生成文檔,不關(guān)心其code實(shí)現(xiàn),因此直接下載二進(jìn)制文件doxygen-1.8.17-setup.exe進(jìn)行安裝。安裝過(guò)程中不需要什么特別設(shè)置,默認(rèn)即可。安裝完后,打開(kāi)命令提示符,輸入doxygen.exe,執(zhí)行結(jié)果如下,說(shuō)明已正確安裝:安裝完后,在指定的安裝目錄下會(huì)有一個(gè)doxygen_manual.chm文件,此文件為用戶手冊(cè),供大家查詢相關(guān)信息。
(2). 生成doxygen配置文件:Doxygen使用配置文件來(lái)確定其所有設(shè)置。每一個(gè)項(xiàng)目應(yīng)該設(shè)置它自己的配置文件。為了簡(jiǎn)化配置文件的創(chuàng)建,Doxygen可以為你創(chuàng)建一個(gè)模板配置文件。通過(guò)執(zhí)行doxygen.exe -y或doxygen.exe -y xxx,其中xxx為配置文件的名字,如果不指定,則默認(rèn)生成的配置文件名字為Doxyfile,執(zhí)行結(jié)果如下:
生成的Doxyfile文件有2000多行,可通過(guò)文本編輯器打開(kāi)它。配置文件的格式類似于簡(jiǎn)單的Makefile的格式,它由許多標(biāo)簽(tag)組成,大多數(shù)標(biāo)簽都給了其默認(rèn)值,可根據(jù)自己實(shí)際需要進(jìn)行修改。每個(gè)標(biāo)簽的用法可在doxygen_manual.chm中查找,而且Doxyfile中也給出了描述。這里僅列出幾個(gè)用到的需要修改默認(rèn)值的標(biāo)簽:
PROJECT_NAME????????= "Doxygen_Test"
INPUT???????????????= E:/GitCode/Doxygen_Test
FILE_PATTERNS???????= *.hpp *.cpp
RECURSIVE???????????= YES
OUTPUT_DIRECTORY????= E:/GitCode/Doxygen_Test
GENERATE_LATEX??????= NO
INPUT_ENCODING??????= GB2312
設(shè)置好后的Doxyfile文件部分內(nèi)容如下:
(3). 以C++為例,編寫(xiě)測(cè)試code,按照doxygen支持的格式添加注釋,所有的文件全部存放在E:/GitCode/Doxygen_Test目錄下,doxygen支持的注釋示例可參考安裝目錄下的examples目錄或doxygen_manual.chm,測(cè)試代碼頭文件api.hpp內(nèi)容如下:
#ifndef FBC_DOXYGEN_TEST_
#define FBC_DOXYGEN_TEST_/// @file api.hpp
/// @brief 以下所有的聲明全部在命名空間fbc內(nèi)
/// @author fengbingchun
/// @version 1.0.0
/// @date 2020-03-08
/// @copyright MIT
/// @since 僅作為測(cè)試用,無(wú)任何實(shí)際意義
namespace fbc {/// 設(shè)置緩存大小
#define BUFSIZE 1024 * 3/// @brief 矩形定義
typedef struct fbc_rect{int width; ///< 矩形寬int height; ///< 矩形高
} fbc_rect;/// @brief 人臉識(shí)別類
/// @details 輸入一張圖像,返回檢測(cè)到人臉圖像框位置
/// @attention 僅支持輸入bgr 3通道圖像,僅支持檢測(cè)一張人臉
class FaceRecognition {
public:FaceRecognition() = default; ///< 默認(rèn)構(gòu)造函數(shù)/// @brief 帶參數(shù)的構(gòu)造函數(shù)/// @param[in] data 圖像數(shù)據(jù)首地址/// @param[in] width 圖像寬/// @param[in] height 圖像高/// @bug 內(nèi)部沒(méi)有對(duì)參數(shù)進(jìn)行判斷FaceRecognition(unsigned char* data, int width, int height);/// @brief 人臉檢測(cè)/// @param[out] rect 檢測(cè)到的人臉/// @return 正常返回0,否則返回錯(cuò)誤碼int Run(fbc_rect& rect);private:unsigned char* data_; ///< 圖像數(shù)據(jù)int width; ///< 圖像寬int height; ///< 圖像高
};/*** @brief 加操作* @attention 并沒(méi)有對(duì)輸入?yún)?shù)進(jìn)行判斷* @param[in] rect1 矩形大小* @param[in] rect2 矩形大小* @param[out] rect3 計(jì)算結(jié)果* @return 正常執(zhí)行返回0,否則返回錯(cuò)誤碼
*/
int fbc_add(const fbc_rect& rect1, const fbc_rect& rect2, fbc_rect& rect3);/// @brief 人臉檢測(cè)
/// @warning 內(nèi)部并沒(méi)有判斷是否溢出
/// @see https://blog.csdn.net/fengbingchun
/// @return 正常執(zhí)行返回0,否則返回錯(cuò)誤碼
int fbc_face_detect();} // namespace fbc#endif // FBC_DOXYGEN_TEST_
(4). 生成文檔:執(zhí)行doxygen.exe Doxyfile,執(zhí)行結(jié)果如下:
執(zhí)行完后會(huì)在E:/GitCode/Doxygen_Test目錄下產(chǎn)生一個(gè)html目錄,打開(kāi)里面的任一html文件,如api_8hpp.html結(jié)果如下:
?
總結(jié)
以上是生活随笔為你收集整理的Doxygen使用介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 从FFmpeg 4. 2源码中提取dsh
- 下一篇: 开源库BearSSL介绍及使用