Doxygen使用介紹

Doxygen的主頁爲http://doxygen.nl/,它的license爲GPL,最新發布版本爲1.8.17,源代碼存放在https://github.com/doxygen/doxygen,它支持的語言包括C、C++、Objective-C、C#、Java、Python等,它支持的系統平臺包括Winodws、Linux、MacOS等。你既可以通過源碼編譯安裝,也可以直接通過二進制文件安裝,可從http://www.doxygen.nl/download.html 直接下載二進制文件。

Doxygen是文檔生成工具,用於從帶註釋的C++等語言源碼中生成文檔。它可產生的文檔格式包括HTML、LaTex、xml等。該文檔直接從源代碼中提取,這使得文檔和源代碼保持一致變得很容易。你可以配置Doxygen使其從未記錄的源文件中提取代碼結構(You can configure doxygen to extract the code structure from undocumented source files)。Doxygen還可以通過包括依賴圖、繼承圖和協助圖來可視化各個元素直接的關係,所有這些圖都是自動生成的。你也可以使用Doxygen來創建常規文檔。

Doxygen使用步驟:

(1). 以下以Windows平臺爲例,介紹其使用,這裏主要關心怎麼生成文檔,不關心其code實現,因此直接下載二進制文件doxygen-1.8.17-setup.exe進行安裝。安裝過程中不需要什麼特別設置,默認即可。安裝完後,打開命令提示符,輸入doxygen.exe,執行結果如下,說明已正確安裝:安裝完後,在指定的安裝目錄下會有一個doxygen_manual.chm文件,此文件爲用戶手冊,供大家查詢相關信息。

(2). 生成doxygen配置文件:Doxygen使用配置文件來確定其所有設置。每一個項目應該設置它自己的配置文件。爲了簡化配置文件的創建,Doxygen可以爲你創建一個模板配置文件。通過執行doxygen.exe -y或doxygen.exe -y xxx,其中xxx爲配置文件的名字,如果不指定,則默認生成的配置文件名字爲Doxyfile,執行結果如下:

生成的Doxyfile文件有2000多行,可通過文本編輯器打開它。配置文件的格式類似於簡單的Makefile的格式,它由許多標籤(tag)組成,大多數標籤都給了其默認值,可根據自己實際需要進行修改。每個標籤的用法可在doxygen_manual.chm中查找,而且Doxyfile中也給出了描述。這裏僅列出幾個用到的需要修改默認值的標籤:

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

設置好後的Doxyfile文件部分內容如下:

(3). 以C++爲例,編寫測試code,按照doxygen支持的格式添加註釋,所有的文件全部存放在E:/GitCode/Doxygen_Test目錄下,doxygen支持的註釋示例可參考安裝目錄下的examples目錄或doxygen_manual.chm,測試代碼頭文件api.hpp內容如下:

#ifndef FBC_DOXYGEN_TEST_
#define FBC_DOXYGEN_TEST_

/// @file api.hpp
/// @brief 以下所有的聲明全部在命名空間fbc內
/// @author fengbingchun
/// @version 1.0.0
/// @date 2020-03-08
/// @copyright MIT
/// @since 僅作爲測試用,無任何實際意義
namespace fbc {

/// 設置緩存大小
#define BUFSIZE		1024 * 3

/// @brief 矩形定義
typedef struct fbc_rect{
	int width;	///< 矩形寬
	int height;	///< 矩形高
} fbc_rect;

/// @brief 人臉識別類
/// @details 輸入一張圖像,返回檢測到人臉圖像框位置
/// @attention 僅支持輸入bgr 3通道圖像,僅支持檢測一張人臉
class FaceRecognition {
public:
	FaceRecognition() = default; ///< 默認構造函數

	/// @brief 帶參數的構造函數
	/// @param[in] data 圖像數據首地址
	/// @param[in] width 圖像寬
	/// @param[in] height 圖像高
	/// @bug 內部沒有對參數進行判斷
	FaceRecognition(unsigned char* data, int width, int height);

	/// @brief 人臉檢測
	/// @param[out] rect 檢測到的人臉
	/// @return 正常返回0,否則返回錯誤碼
	int Run(fbc_rect& rect);

private:
	unsigned char* data_;	///< 圖像數據
	int width;		///< 圖像寬
	int height;		///< 圖像高
};

/**
 * @brief 加操作
 * @attention 並沒有對輸入參數進行判斷
 * @param[in] rect1 矩形大小
 * @param[in] rect2 矩形大小
 * @param[out] rect3 計算結果
 * @return 正常執行返回0,否則返回錯誤碼
*/
int fbc_add(const fbc_rect& rect1, const fbc_rect& rect2, fbc_rect& rect3);

/// @brief 人臉檢測
/// @warning 內部並沒有判斷是否溢出
/// @see https://blog.csdn.net/fengbingchun
/// @return 正常執行返回0,否則返回錯誤碼
int fbc_face_detect();

} // namespace fbc

#endif // FBC_DOXYGEN_TEST_

(4). 生成文檔:執行doxygen.exe Doxyfile,執行結果如下:

執行完後會在E:/GitCode/Doxygen_Test目錄下產生一個html目錄,打開裏面的任一html文件,如api_8hpp.html結果如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章