用doxygen為C/C++程式自動產生文檔(一)

來源:互聯網
上載者:User

用doxygen為C/C++程式自動產生文檔(一)

轉載請註明:嵌入式學習網 www.embstudy.org

這幾天有人問起關於文檔產生工具的問題,個人覺得 doxygen 是一個不錯的由C/C++ 注釋自動產生文檔的工具軟體。在這裡簡單說明一下 doxygen 的使用,供大家參考。

一、doxygen 簡介

二、簡單說,doxygen 就是一個文檔系統,它可以為C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D 等語言產生文檔。

官方網站:http://www.stack.nl/~dimitri/doxygen/index.html

 

它可以從三個方面協助我們:

1、  它可以產生HTML格式的線上文檔或LATEX格式的離線參考手冊,另外它還可以產生RTF(MS-WORD), PostScript, 帶超連結的PDF,壓縮的HTML,unix man 等格式的文檔。這些文檔是直接從源檔案提取的,這有助於保持代碼和文檔的一致性。

a)      Doxygen在輸出HTML文檔時,自動產生用於製作CHM的專案檔(.hhp)、目錄檔案(.hhc)和索引檔案(.hhk)。可以使用HTML Help Workshop中的CHM編譯器(hhc.exe)編譯後產生CHM檔案。

b)      Doxygen輸出LATEX文檔的同時,產生了了轉換成pdf格式的檔案的makefile。只要系統安裝了相應的TEX工具,就可以從LATEX文檔產生pdf文檔。

c)       Doxygen輸出的RTF格式,針對Word作了最佳化,可以很好的轉換到Word文檔。

2、  通過配置 doxygen,可以從非文檔化的源檔案中提取源檔案結構,這有助於幫我們理清大的源碼包的結構。它能夠自動的產生包括:依賴圖,繼承圖,共同作業圖表等元素之間關係的圖表(需要graphviz支援)。

a)         Graphviz是一個圖形化軟體,Doxygen使用Graphviz產生各種圖形。

b)        Graphviz下載地址 http://www.graphviz.org/Download..php

 

3、  甚至可以“濫用”來建立普通文檔。

http://www.graphviz.org/Download..php

三、Doxygen協議

Doxygen是在GPL協議下發布的,你可以使用其源碼或編譯好的二進位檔案。Doxygen幾乎可以在所有的linux相容系統上運行,它也可以運行在windows環境。你可以根據需要選擇。

四、 Doxygen的文檔、FAQ、使用者和相關文章

a)         http://www.stack.nl/~dimitri/doxygen/manual.html

b)        http://www.stack.nl/~dimitri/doxygen/faq.html

c)        http://www.stack.nl/~dimitri/doxygen/projects.html

d)        http://www.stack.nl/~dimitri/doxygen/articles.html

五、使用Doxygen的一般步驟

a)         下載 Doxygen軟體 http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc

b)        下載 Graphviz http://www.graphviz.org/Download..php

c)        安裝 Doxygen 和 Graphviz(可選)

d)        準備一個設定檔(Doxyfile),通常用Doxywizard產生,然後可以根據需要修改(也可以不改)。

e)         按照Doxygen規則給原始碼添加註釋,將代碼文檔化

f)         運行Doxygen 產生和原始碼對應的文檔。

 

六、安裝doxygen

a)         Win下的安裝

                         i.              直接運行Doxygen Setup EXE檔案,安裝提示操作就可以了

                       ii.              運行Graphviz的安裝(EXE)檔案,按提示操作即可(可選)

b)        在unix相容系統上採用編譯源碼方式安裝 Doxygen

                         i.              採用源碼安裝 Doxygen 要確認你的系統安裝有:

1.         flex, bison 和 make等GNU工具

2.         Perl

3.         configure 腳步要求你的系統上有標準Unix命令如:sed, date, find, uname, mv, cp, cat, echo, tr, cd, and rm等

4.         為了使用Doxygen的進階功能,還需要安裝以下附件工具

a)         Qt3.3或更高版本,doxygen用其構建GUI前端doxywizard

b)        一個Latex軟體:如teTeX 1.0,用來產生LaTex、Postscript和PDF格式的輸出。

c)        Graph visualization toolkit 1.8.10或更高版本。Doxygen用它產生包含圖、依賴圖、繼承圖和共同作業圖表等。如果採用編譯源碼方式安裝graphviz,你的系統需要freetype支援。

d)        如果需要公式,或者你不希望使用pdflatex,則需要ghostscript,這個軟體可以在 www.ghostscript.com上找到

e)         為了產生Doxygen自己格式的文檔,Python也是需要的,www.python.org.

                       ii.              解壓下載的Doxygen源碼包

1.         tar xf doxygen-$VERSION.src.tar      

2.         ./configure 會根據系統自動設定doxygen,併產生相應的makefile

a)         可以configure --platform platform-type自定平台類型

b)        configure --with-doxywizard 可以圖形前端doxywizard

c)        更多資訊可以通過configure –help查看,並給定相應的配置

                      iii.              編譯Doxygen

1.         make

                     iv.              可選的產生手冊

1.         make docs

2.         make pdf

                       v.              安裝 Doxygen

1.         make install (需要root使用者權限)

                     vi.              已知的問題

1.         有些系統中,QT標頭檔和庫檔案不在QTDIR環境變數指定的目錄下,解決辦法:

mkdir qt         cd qt         ln -s your-qt-include-dir-here include         ln -s your-qt-lib-dir-here lib        export QTDIR=$PWD

2.         Bison 問題

a)         Bison 1.31至1.34版本有一個Bug,可以使用1.35或1.31以前的版本

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.