Linux 文件生成器doxygen

2022-06-09 13:27:12 字數 2013 閱讀 4400

部落格**:半閒居士

doxygen是乙個自動文件生成工具,根據**裡寫的注釋,自動生成html和latex格式的文件。通常是給c++用的,通常是輸出html格式的,你看到的pcl網上文件就是拿doxygen生成的。

事實上,隨意乙份**,都可以拿doxygen生成乙個文件,然後在本地看它的**結構。 我們拿以難讀著稱的lsd-slam舉個例子。

首先,建個資料夾,把lsd-slam的**拷下來:

git clone
拷完之後lsd就在你電腦裡躺著了。進到package_dir/lsd_slam/lsd_slam_core,開啟一看?哇,一堆檔案。仔細一看?哇,好多類和變數,還有藏著掖著的全域性變數,還有sse指令!太多了,沒法看,怎麼辦?別急,我們用doxygen生成乙個網頁來看。網頁的好處是可以隨處跳轉。

由於你電腦裡可能還沒有doxygen,我們先來安裝一下:

sudo apt-get install doxygen doxygen-gui
什麼?你不是ubuntu怎麼辦?你都不用ubuntu了還用我教你裝軟體?

昂,總之,主要是doxygen本體和它的gui模組。我在ubuntu16.04下是這兩個包名。如果你不確定,請用apt-cache search doxygen查一下。

裝好了之後,在該資料夾下開乙個doc資料夾,把一會兒生成的文件放裡頭:

mkdir doc; cd doc
然後,輸入doxywizard調出gui面板。

doxywizard
然後就會出乙個面板啦,來看看上面都有啥:(外觀視你的桌面環境可能略有不同)

大概能看出哪些地方要設定吧?首先把step 1中的目錄設到你要儲存文件的目錄。project name那些東西隨意,可以不設。比較重要的是源**目錄source code directory,請把它設到lsd_slam_core/src下,並鉤上scan recursively,表明我們要掃瞄子資料夾。然後,輸出資料夾設成當前目錄./即可,本來我們就在當前目錄嘛。

這步做好了,點左邊的「mode」,進入下乙個版塊。下個版塊裡會讓你選語言,既然咱們用c++,保持預設的就可以了; output和diagrams也沒什麼好動的。現在準備工作完成啦!切到run,點run doxygen,嘩啦嘩啦,等文件生成完。然後點show html output,就可以在瀏覽器裡看到文件啦。如果你下一次想直接看,直接開啟doc/html/index.html就可以了!

是不是和網上的文件很像啊?看這個比看源**效果更高哦!

doxygen本身是命令列格式的,給乙個配置檔案,然後根據配置檔案去生成文件。但是!幾百個配置選項我怎麼記得住啊!既然圖形介面那麼好用為啥要去用命令列啊!哦你沒有桌面環境?那還是乖乖用命令列吧……

命令列的doxygen也很簡單。首先用

doxygen -s -g settings.txt
doxygen settings.txt
doxygen還能按照一些特殊注釋格式來生成特別的文件。如果你感興趣,可以看看上一講octomap裡的那個doc/目錄。它也可以用doxygen生成乙個文件,但那個文件功能更高階些,可以顯示類繼承關係樹狀圖等等。據說還能生成別的語言的注釋,然而像python估計也不需要這種工具……總之,你要玩的話,doxygen還是有些東西可以玩的,雖然並不太多。本著kiss原則,我還是把它當成乙個簡單好用的小工具,不必太折騰就能出文件啦!那麼,本講就寫到這裡,咱們下次再見!

Golang iris API文件生成器

這裡有各個 框架的 使用方式 go get github.com betacraft yaag 2 引入對應的包 3 初始化 initialize yaag yaag.init yaag.config on true,doctile iris docpath apidoc.html 4 註冊中介軟體...

分析報告生成器,Word文件自動生成器

多特 軟體介紹 該軟體為共享軟體,如果你喜歡這個軟體,並且能為你帶來價值,請購買。軟體 為 2900元 套.乙個使用者可以部署在兩台電腦上執行。在日常工作中,你一定遇到這樣的事情,經常要在每個固定時間出乙個報告,或簡單或複雜。每次還可能要改動一些引數。報告的形式可能是文字描述,也有圖表,但格式都不固...

restful api文件生成器 神器

我現在還不是很懂到底什麼才是restful api,目前理解的大概就是 一種介面,只管拿引數進來,做一系列處理,返回json字串形式的結果。而restful api風格的api文件,就是用來說明這個介面需要傳進什麼引數,每個引數是什麼含義,有什麼要求,經過處理之後,該介面返回了什麼內容,每乙個資料代...