亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 軟件教程 > 正文

doxygen 常見問題一覽表(中文亂碼等)

2020-07-18 15:23:06
字體:
來源:轉載
供稿:網友

下載doxygen的binary 包

為了使doxygen能夠將類圖、協作圖等加入到文檔中,還要下載安裝graphviz for win。

graphviz 2.18下載:

http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.18.exe

全部安裝后就可以開始使用了。

運行doxygen wizard.exe

如果你像我一樣希望只通過圖形界面運行doxygen的話,請在doxygen的bin目錄中運行doxywizard.exe,這時按照doxygen根目錄下的文檔(doxygen_manual-1.5.2.chm)中 Doxywizardusage一節的說明設置即可。主要包括,源碼路徑、工作路徑、輸出路徑等。

點開始,即可生成文檔

最后對文檔生成過程中遇到的一些問題進行說明:

1、 中文問題:中文注釋在文檔中是亂碼。

解決:在expert中的INPUT選項頁的INPUT_ENCODEING中填入“GB2312”,這樣基于GB的文本編輯器生成的代碼就可以正常使用了。

clip_image002

但是,還有一個無法徹底解決的問題就是,當輸出語言為中文時左邊的導航欄的所有中文仍然是亂碼。哪位有解決方案,請務必告知!

2 圖形問題:無法繪制類圖協作圖等圖形。

首先確保安裝了graphviz forwin,注意不是wingraphviz,后者是一個graphviz的com封裝,但是doxygen并不是基于它開發的,所以裝了也沒用。然后在expert的DOT_PATH中填入graphviz的安裝路徑。接著在wizard的diagram中選擇需要生成的圖形類別就可以了。

如果出現無法包含.map文件的錯誤,可以將工作目錄設置成html,并將html中所有文件都清除再試。這個問題的原因還不太確定。

3 輸出chm的問題:如何輸出.chm文件

1. 你必須安裝微軟或其相兼容的chm編譯系統。通常為HTML Help Workshop。

2. 首先在[Wizard...]的Output頁面中,選擇HTML,然后選擇到prepare for compressed HTML(.chm)。

3. 其次在[Expert...]的HTML頁面中,將HHC_LOCATION指向微軟的hhc工具。通常為C:/Program Files/HTML Help Workshop/hhc.exe。然后點擊OK,保存,編譯即可。

clip_image004[1]

HHC_LOCATION中輸入hhc.exe文件的路徑。hhc.exe可以通過安裝HTML Help Workshop獲得。

clip_image006

HTML Help Workshop 地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en

4 如何像MSDN那樣在左邊的樹中顯示函數列表?

打開[Expert...]的HTML頁面,然后選中TOC_EXPAND即可。

clip_image008

5 如何去掉CHM附帶的CHI文件?

注意在默認情況下,CHM會有一個CHI文件,似乎是用來加速索引的。我本人也遇到過很多用戶僅僅上傳了CHM,而沒有上傳CHI文件,導致無法正常顯示的情況。我不知道是否可以通過工具重建CHI文件,但是我覺得關閉這個功能即可。打開[Expert...]的HTML頁面,取消GENERATE_CHI即可。

6 如何像MSDN那樣右邊每頁顯示一個函數?

這個問題其實比較棘手,在[Expert...]中的Project頁面,下面有一個選項叫做SEPARATE_MEMBER_PAGES,把這個選項選中,這樣每個函數就是一個頁。但是會有一個問題,那就是右邊頁面的旁邊多了所有函數的列表。很遺憾,經過研究,這個確實無法去掉。我的解決方法就是自己編譯一下doxygen,在memberlist.cpp的writeDocumentationPage函數中將container->writeQuickMemberLinks(ol,md);連同附近幾行屏蔽掉即可。

7 如何在CHM中去掉當選擇SUBGROUPING后去掉分組的組信息?

這個功能就是在chm的左邊樹中直接列出函數列表,而不用點擊看右邊頁面了。這個功能需要修改源代碼。在index.cpp中,屏蔽writeGroupIndexItem函數的Doxygen::indexList.addContentsItem,Doxygen::indexList.incContentsDepth和Doxygen::indexList.decContentsDepth();即可,具體不解釋了,一看便知。

8 如何修改或者去掉右下腳Generated at ...的文字?

打開[Expert...]的HTML頁面,然后在HTML_FOOTER中指定相應的HTML文件即可。注意HTML_FOOTER中至少包含BODY和HTML結束標記。即一個最小的尾部HTML至少是這樣</BODY></HTML>。同理,如果你要指定了HTML_HEADER,他至少包含<HTML><HEAD></HEAD><BODY>

9 如何生成組?

組就是可以把同類的函數放到一個根下的顯示方式。doxygen支持grouping,即你可以把相關的代碼通過標志,放到同一個組中,便于查看。這主要是通過幾個內置語法命令。首先通過@defgroup定義一個組,然后要把分組的函數或者類等,通過標志@ingroup加入相應的組。這樣,相應的函數就被放置在同一個組中。

10 如何生成中文幫助?

點擊[Expert...],在頁Project 的OUTPUT_LANGUAGE,選擇Chinese,這樣輸出的幫助提示信息就是中文。具體中文提示信息的文字在源代碼中。

clip_image010

11 如何徹底解決DoxyGen的輸出中文chm的亂碼問題?

DoxyGen的實現中大概有三處編碼的設置。首先是,doxyfile,也就是配置文件。其次,INPUT_ENCODING,也就是DoxyGen需要解析的輸入文件的編碼。最后,就是輸出的編碼。譬如CHM左邊的索引編碼。

首先是chm的標題亂碼,這個比較好解決,因為DoxyWizard使用QT做的界面,它內部做了轉換,所以在DoxyWizard中輸入中文,在保存的時候,他自己做了轉碼,導致doxyfile中的最終的保存信息不正確。這個時候只需要用記事本打開doxyfile配置文件,輸入相應中文即可。注意保存的時候保存成ANSI編碼即可。保存成其他格式的話可能需要去掉BOM,比較麻煩,沒研究了。這個相應的編碼設置在[Expert...]中,頁Project 的 DOXYFILE_ENCODING,不輸入或者默認為UTF-8都行。

其次是右邊內容亂碼,這個多半是因為你沒有配置好輸入的文件編碼類型造成的。在[Expert...]的Input頁面中,有一個INPUT_ENCODING,這個選項表示輸入文件的編碼方式,這要和你處理的源文件格式一致。對于我們來說(使用vs的人),一般設置為GB2312。當然,再次聲明,編碼方式取決于源文件的編碼方式。如果文件編碼已經是UTF-8了,然而你還將其設置成GB2312,那么DoxyGen會將UTF-8當成ANSI再進行一次UTF-8轉換,自然會出錯了。

最后也是經常遇到的問題就是DoxyGen生成的CHM文件的左邊樹目錄的中文變成了亂碼。這個只需要將chm索引的編碼類型修改為GB2312即可。在HTML的CHM_INDEX_ENCODING中輸入GB2312即可。然而這種方法下,還有一個瑕疵之處,就是chm的搜索頁的搜索結果中顯示的中文文字卻變成亂碼了。這是因為DoxyGen默認開啟了HTML Help Workshop的Full-textsearch全文搜索選項,他在進行全文搜索的時候,應該是打開文件然后按照ANSI進行搜索的,(資料表示HHW不支持UTF-8,僅支持ISO-8859-1或者windows-1252編碼。)而Doxygen生成的右邊界面統一是UTF-8,這自然出現了問題。而在這種情況下做全文搜索,理論上只能搜索英文。

無奈,我們的解決方案只能是重新編譯DoxyGen代碼,為了滿足搜索,只要保證右邊的頁面文件不是UTF-8即可。我們首先修改writeDefaultHeaderFile這個函數的代碼,將其charset=GB2312。然后在TranslatorDecoder的構造函數中修改m_toUtf8 =(void*)-1;即屏蔽文本寫入時最終的轉換函數。最后刪除INPUT_ENCODING的設置或者輸入UTF-8。這樣會使DoxyGen認為我們的文本是UTF-8的,從而不用進行轉換。生成替換原始的DoxyGen即可。

另外需要補充的是,還有一種方案是不用修改作者的源代碼,但是需要將DoxyGen生成的右邊的HTML文件使用工具(如iconv)手工轉換成GB2312,然后再使用HTML Help Workshop生成,網上有篇文章介紹過,我測試一下,也是沒有問題的。

最后,doxygen是一個開源項目,并且支持vs2005項目,這樣一來,如果你覺得哪里不順手,完全可以把代碼下載后自行編譯。雖然我感覺doxygen的代碼寫的不能算是perfect,但是對于一個這樣的工程,我們無論如何都需要一種敬意。祝好運~

這樣,基本上就能夠用doxygen生成漂亮的文檔了。代碼方面,doxygen支持多種格式的注釋風格,根據manual選擇自己喜歡的就好。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩亚洲在线观看| …久久精品99久久香蕉国产| 亚洲国产精品成人一区二区| 亚洲天堂男人天堂| 亚洲精品久久久久久久久| 精品久久在线播放| 色婷婷综合久久久久中文字幕1| 国产男人精品视频| 这里只有精品视频在线| 久久精品国产2020观看福利| 日韩少妇与小伙激情| 日本亚洲欧美三级| 精品久久中文字幕| 欧美在线视频观看| 久久欧美在线电影| 国产精品永久免费视频| 国产精品一久久香蕉国产线看观看| 亚洲精品日韩激情在线电影| 欧美—级a级欧美特级ar全黄| 一区二区三区国产视频| 伊人久久久久久久久久久| 国产精品亚洲美女av网站| 日韩电影中文 亚洲精品乱码| 国产精品国产福利国产秒拍| 96精品视频在线| 毛片精品免费在线观看| 久久精品视频va| 中文字幕日韩精品在线观看| xvideos亚洲人网站| 欧美激情一区二区三区高清视频| 亚洲欧美综合精品久久成人| 国产精品日韩专区| 亚洲aⅴ日韩av电影在线观看| 这里只有精品丝袜| 日本精品久久久| 一个人看的www久久| 亚洲成色999久久网站| 亚洲黄色在线看| 美女性感视频久久久| 国产日韩欧美中文在线播放| 亚洲free嫩bbb| 视频在线观看99| 国产精品久久久久久久久久| 亚洲大胆美女视频| 国产成人鲁鲁免费视频a| 一区二区在线视频| 久久久久五月天| 亚洲精品国精品久久99热| 国产精品综合不卡av| 精品无人国产偷自产在线| 欧美日韩国产999| 国产激情久久久| 久久69精品久久久久久久电影好| 国产成人自拍视频在线观看| 国产一区二区黄| 国产一区二区三区在线播放免费观看| 亚洲bt欧美bt日本bt| 欧美激情久久久久久| 麻豆乱码国产一区二区三区| 国产欧美精品久久久| 在线视频一区二区| 亚洲国产成人在线播放| 国产精品亚洲一区二区三区| 国产精品久久久久久搜索| 姬川优奈aav一区二区| 久久成人av网站| 97视频网站入口| 精品亚洲一区二区三区在线播放| 在线不卡国产精品| 亚洲直播在线一区| 欧美日韩国产精品一区| 欧美自拍大量在线观看| 欧美一级大片在线观看| 久久久久成人精品| 国产日韩在线视频| 国产成人一区三区| 国产精品成人一区二区| 久久夜精品va视频免费观看| 日本精品久久久久影院| 国产亚洲人成网站在线观看| 亚洲电影在线观看| 国产精品成人一区| 欧美激情精品久久久久| 久久久精品一区二区三区| 欧美激情成人在线视频| 国产精品女视频| 亚洲精品美女久久久| 欧美一区二粉嫩精品国产一线天| 亚洲欧美国产精品久久久久久久| 亚洲剧情一区二区| 中文字幕在线看视频国产欧美在线看完整| 91亚洲精品久久久久久久久久久久| 欧美中文在线观看| 国产日韩欧美夫妻视频在线观看| 欧美亚洲成人网| 在线电影av不卡网址| 欧美日韩午夜剧场| 欧洲成人在线观看| 亚洲电影在线观看| 亚洲奶大毛多的老太婆| 欧美日韩国产精品一区二区三区四区| 亚洲国产成人久久| 日韩精品在线电影| 国产小视频国产精品| 国产精品视频在线观看| www.亚洲免费视频| 伊人伊成久久人综合网站| 亚洲精品一区二区三区不| 久久精品99久久久香蕉| 久久九九国产精品怡红院| 欧美日韩国产va另类| 日韩美女免费视频| 亚洲人成电影在线观看天堂色| 97精品一区二区视频在线观看| 中文日韩在线视频| 国产在线观看不卡| 国产免费成人av| 成人av资源在线播放| 久久91精品国产91久久久| 亚洲欧洲xxxx| 欧美日韩视频在线| 久久久久久久久久久人体| 国产成人精品日本亚洲专区61| 日韩中文综合网| 国产在线视频不卡| 7m精品福利视频导航| 日韩美女在线播放| 欧美视频在线观看 亚洲欧| 不卡av在线播放| 国产精品视频区1| 欧美国产日韩精品| 亚洲第一页在线| 成人性生交大片免费看小说| 欧美电影在线观看完整版| 8090理伦午夜在线电影| 欧美久久精品一级黑人c片| 不卡av在线播放| 精品国内自产拍在线观看| 久久777国产线看观看精品| 日韩av在线网页| 亚洲一区二区三区香蕉| 成人国产精品av| 亚洲视频欧洲视频| 成人看片人aa| 大胆欧美人体视频| 国产精品九九久久久久久久| 久久久久999| 成人免费观看网址| 午夜精品久久久久久久白皮肤| 精品国产1区2区| 国产欧美中文字幕| 欧美日韩一区二区三区在线免费观看| 欧美成人免费观看| 国产精品一区二区久久| 日韩精品福利在线| 中文字幕亚洲专区| 国产精品中文久久久久久久| 国产精品高清在线| 91在线色戒在线| 欧美精品情趣视频| 色在人av网站天堂精品| 91在线中文字幕| 欧美日韩成人免费| 97在线观看免费|