atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
Informatik-Wiki
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
広告非表示(β版)
ページ一覧
Informatik-Wiki
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
Informatik-Wiki
広告非表示 広告非表示(β)版 ページ検索 ページ検索 メニュー メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • Informatik-Wiki
  • doxygenの使用例

Informatik-Wiki

doxygenの使用例

最終更新:2008年11月11日 16:08

ahr

- view
管理者のみ編集可

なんでもありのdoxygen


  • なんでもありのdoxygen
  • Graphviz連携
  • HTML HELP WORKSHOPとの連携
    • HTML HELP WORKSHOP
    • doxygenの HTML HELP 支援機能
  • Linuxでchmを作るには
  • chmが出来たら
  • ドキュメント分割
    • ドキュメント分割するときの注意

doxygen はオープンソースで出ている静的なソース解析&ドキュメント化ツールです。
昔から使っていますが高機能化と他言語対応がすすんで今やなんでもありになった感があります。
それだけに、新しい機能について理解し、使いこなすのも難しくなっています。
設定次第でいくらでも細かい作業を行うので、逆に情報過多になり過ぎてしまうきらいもあります。
自分は専ら新しい作業で既存のソースの理解を早めるために、ソースブラウズ用出力を生成しています。

Graphviz連携

Graphviz はあまりにも有名なグラフィックツールライブラリです。
これと連携する事で、ずいぶんと見栄えのするドキュメントを作れる様になります。
そのためにはGraphvizを入手してあらかじめインストールしておく必要があります。
doxygenの設定例としては、以下のようになります。Graphvizを使用するときは、DOT使用の設定にて
その指定を行います。

  • HAVE_DOT = YES # DOTを使用する。グラフィカルな出力が有効になる。
    • ここをYESにしないとグラフィック出力しません。
  • DOT_FONTNAME = MSGOTHIC_TTC # Graphvizが使用するフォント。指定しなくても可。
  • DOT_FONTSIZE = 9 # 同サイズ。指定しなくても可。
  • DOT_FONTPATH = C:\WINDOWS\Fonts # Graphvizに使わせたいフォントファイルが存在するPATH。指定しなくても可。
    • 上の3つは設定しなくてもデフォルト設定で適当に出力します。
    • イメージ化した日本語が化けるときに変更してみてください。
  • CLASS_GRAPH = YES # 全体のクラス図
  • COLLABORATION_GRAPH = YES # コラボレーション図
  • GROUP_GRAPHS = YES # グループ図
  • UML_LOOK = NO # UMLっぽい外見にする
  • TEMPLATE_RELATIONS = YES # テンプレート関連図
  • INCLUDE_GRAPH = YES # includeツリー図
  • INCLUDED_BY_GRAPH = YES # 逆includeツリー図
  • CALL_GRAPH = YES # 呼び出しツリー図
  • CALLER_GRAPH = YES # 呼び元ツリー図
  • GRAPHICAL_HIERARCHY = YES # グラフィカル階層図
  • DIRECTORY_GRAPH = YES # ディレクトリ図
  • DOT_IMAGE_FORMAT = png # 出力イメージファイルのフォーマット
  • DOT_PATH = D:/TOOLS/Entwicklung/doxygen/ATT/Graphviz/bin # Graphvizをインストールした場所
  • DOT_GRAPH_MAX_NODES = 20 # 一個の図に入れるノードの最大個数
    • これをあまり多めにすると絵がでかくなりすぎて見難くなります。
  • DOT_CLEANUP = YES # クリーンナップする
  • HTML_DYNAMIC_SECTIONS = NO # JavaScriptを使ってイメージファイルを閉じたり開いたり出来る様なページにする

HTML HELP WORKSHOPとの連携

doxygenで最もポピュラーな出力形態はHTMLだと思いますが、これを行うと、膨大な数のファイルが作られて
結構管理も大変になります。これを軽減する方法のひとつにWindowsでお馴染みのchmファイルを生成する、
という手段があげられます。

HTML HELP WORKSHOP

マイクロソフトはMSDNのリソースの一部としてHTML HELPコンパイラの開発セットを無料公開していました。
これを使用すると、プロジェクトを生成してHTMLファイルをまとめてひとつのchmファイルに統合することが
たやすく出来ます。

ダウンロードサイト は変わるかもしれないので
その都度捜す方が確かです。

doxygenの HTML HELP 支援機能

doxygenではHTML HELP生成を有効にしてchmファイル名を設定ファイルに書いておくと、
勝手にこのHTML HELP WORKSHOPのプロジェクトファイルを生成し、HTMLヘルプコンパイラを起動して
chmファイルを作ってくれます。そのために必要な設定は以下の通りです。注意点は、
HTML HELPコンパイラで日本語を扱うときは、Shift_Jisでないと化け化けになる、という事です。
このため、UTF-8などで書いたソースを扱うときは、途中にフィルタをかませる必要があります。
以下、設定ファイル例の主要ポイントです。

  • DOXYFILE_ENCODING = UTF-8 # 元のソースのエンコーディングはUTF-8だった
  • OUTPUT_LANGUAGE = Japanese-en # 出力言語は日本語+英語メニューに設定。メニュー文字化け防止のため
  • INPUT_ENCODING = Shift_Jis # doxygenに渡すソースのエンコーディングをShift_Jisに設定。HTML HELP用。
  • INPUT_FILTER = "D:\cygwin\bin\iconv -c -f UTF-8 -t SHIFT-JIS" # Cygwinのiconvを使ってUTF-8→Shift-Jis変換
    • D:\cygwinにcygwinがインストールされている場合。iconvは単体版も出ているので利用可。
    • iconvでなくてもnkfなどコード変換フィルタ系ツールが使えれば置き換え可能。
      • 入力テキストのエンコーディングを変換してstdoutに出力できるタイプ。
  • FILTER_SOURCE_FILES = YES # ドキュメント出力部だけでなくソース全部をUTF-8→Shift-Jis変換対象にする
  • GENERATE_HTML = YES # HTML生成を有効にする
  • GENERATE_HTMLHELP = YES # HTML HELP生成を有効にする
  • CHM_FILE = myproject.chm # HTML HELPファイル名を指定する
  • HHC_LOCATION = "C:/Program Files/HTML Help Workshop/hhc.exe" # HTML HELPコンパイラPATHを指定する
  • GENERATE_CHI = NO # (OPTIONAL) CHIファイル生成を無効(YESで有効)にする
  • CHM_INDEX_ENCODING = Shift_Jis # CHMインデックスのエンコーディングを指定する(本文に合わせてShift_Jisに指定)
  • BINARY_TOC = YES # TOCをバイナリにする
  • TOC_EXPAND = NO # TOCを開かない

Linuxでchmを作るには

今のところHTML HELPはWindowsでしか動作しませんが、wineを使えばLinux上でも動作するようです。

chmが出来たら

chmは元がHTMLなので、文書内にURLを書いておくと外部ドキュメントへのリンクになります。
また、chmをpdfなどに変換するツールも色々と出ているので、pdf化して配布することも出来る様になります。

ドキュメント分割

doxygenは相当巨大なソースセットでもこつこつとドキュメント変換してくれます。
しかし、毎回全ソースを変換していたのでは時間もかかり非効率です。
効率を上げるために、ドキュメント対象(設定ファイルでいうINPUTで指定するPATHを
小型化して、出力ファイルのひとつとしてTagfileを生成する、というのもひとつの方法です。
こうして生成したTagfileを別のdoxygen設定ファイル上で参照する事が出来ます。

  • INPUT = D:/myproject/mysrc/part1
    • 同様に、part2というプロジェクトが存在するという前提
  • GENERATE_TAGFILE = myTagfile_part1.xml
    • part1用のTagfileがmyTagfile_part2.xmlという名前で生成されている、という前提です。
    • 同様に、part2用のTagfileがこの名前で生成されます。
  • TAGFILES = myTagfile_part2.xml
    • 外部のTagfileを参照するのはこの設定です。スペースで区切って複数並べることも出来ます。

ドキュメント分割するときの注意

doxygenはただでさえたくさんのPATH設定を使用しています。
doxygenを動作させるPATH、設定ファイルが存在するPATH、設定ファイル中に書かれた入力PATHや出力PATH。
これ等が複雑に絡み合っているのでTagfilesを使用する時は、設定ファイルとINPUTのPATHの位置が
うまく合ってないとちゃんと処理できないことがあります。安全な事例としては、以下のようになります。

  • /myproject/mysrc
    • ここ(ソースディレクトリの頂点)にDoxyfile_part1を置く
      • GENERATE_TAGFILE = /myproject/mydoc/part1/myTagfile_part1.xml
      • TAGFILES = myTagfile_part2.xml=/myproject/mydoc/part2
      • 参照指定のときは、相対PATH、絶対PATHのほか、ファイル名=PATHの形式が可能
    • ここ(ソースディレクトリの頂点)にDoxyfile_part2を置く
      • GENERATE_TAGFILE = /myproject/mydoc/part2/myTagfile_part2.xml
      • TAGFILES = myTagfile_part1.xml=/myproject/mydoc/part1
      • 参照指定のときは、相対PATH、絶対PATHのほか、ファイル名=PATHの形式が可能
  • /myproject/mysrc/part1
    • part1のソースツリー
  • /myproject/mysrc/part2
    • part2のソースツリー
  • /myproject/mydoc/part1
    • ソースのpart1のドキュメント出力先
    • ここにmyTagfile_part1.xmlを出力する
  • /myproject/mydoc/part2
    • ソースのpart2のドキュメント出力先
    • ここにmyTagfile_part2.xmlを出力する
「doxygenの使用例」をウィキ内検索
LINE
シェア
Tweet
Informatik-Wiki
記事メニュー
メニュー
  • トップページ
  • メニュー
  • メニュー2


2009.09/25
CIW v5 Associate 認定獲得
番号:386753


wiki構文
記事メニュー2

更新履歴

取得中です。



#twitter_badge_text
-
最近更新されたページ
  • 5689日前

    UML : free design tool BOUML
  • 5689日前

    free X server on Windows
  • 5714日前

    メニュー2
  • 5757日前

    組み込みWindows開発/開発環境/VisualStudio2005
  • 5757日前

    組み込みWindows開発
  • 5861日前

    構成管理(SCM)システム/PERFORCE
  • 5866日前

    メニュー
  • 5931日前

    CIWについて
  • 5937日前

    ITIL
  • 5937日前

    ITILのお勉強はじめ
もっと見る
最近更新されたページ
  • 5689日前

    UML : free design tool BOUML
  • 5689日前

    free X server on Windows
  • 5714日前

    メニュー2
  • 5757日前

    組み込みWindows開発/開発環境/VisualStudio2005
  • 5757日前

    組み込みWindows開発
  • 5861日前

    構成管理(SCM)システム/PERFORCE
  • 5866日前

    メニュー
  • 5931日前

    CIWについて
  • 5937日前

    ITIL
  • 5937日前

    ITILのお勉強はじめ
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  2. SDガンダム Gジェネレーションオーバーワールド 攻略Wiki
  3. 20XX @ ウィキ
  4. 役割論理専用wiki 
  5. トリコ総合データベース
  6. モンスター烈伝オレカバトル@wiki
  7. ファイアーエムブレム用語辞典
  8. NIKKEぺでぃあ
  9. 機動戦士ガンダム EXTREME VS. MAXI BOOST ON wiki
  10. ホワイトハッカー研究所
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. MADTOWNGTAまとめwiki
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. ストグラ まとめ @ウィキ
  6. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  7. 検索してはいけない言葉 @ ウィキ
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. モンスター烈伝オレカバトル2@wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MADTOWNGTAまとめwiki
  2. MadTown GTA (Beta) まとめウィキ
  3. フォートナイト攻略Wiki
  4. 首都圏駅メロwiki
  5. Last Z: Survival Shooter @ ウィキ
  6. まどドラ攻略wiki
  7. 駅のスピーカーwiki
  8. ちいぽけ攻略
  9. ソニックレーシング クロスワールド 攻略@ ウィキ
  10. 魔法少女ノ魔女裁判 攻略・考察Wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  2. 【移転】Miss AV 見れない Missav.wsが見れない?!MissAV新URLはどこ?閉鎖・終了してない?missav.ai元気玉って何? - ホワイトハッカー研究所
  3. ブラック・マジシャン・ガール - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  4. 真崎杏子 - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  5. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. 涙目のルカ - アニヲタWiki(仮)
  7. 参加者一覧 - MADTOWNGTAまとめwiki
  8. 参加者一覧 - ストグラ まとめ @ウィキ
  9. コメント/雑談・質問 - マージマンション@wiki
  10. ハーディガン - 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.