【コメント】doxygen【コンソメ】
■ このスレッドは過去ログ倉庫に格納されています
#defineマクロ定義をドキュメント(html)に出力させたくて ttp://www.doxygen.jp/commands.html#cmddef ここを見て C++ code - 19 lines - codepad ttp://codepad.org/mUM77yZO こんなの書いてみたんですが、 全然#defineマクロ定義が出力されません。 どうすれば良いでしょうか? >>196 define_test.h のファイルのページ自体は出来てる? 実際のファイル名と @file の後ろに書いたファイル名が合ってないとかはないかな、と思ったもので。 >>197 ttp://loda.jp/uploader_nrnrnr/?id=2 こんなHTMLが生成されました。 どうなんでしょう。。。? >>198 define_test.h ファイルのドキュメントのページができてないね。 >>196 のソースをコピペして同じ名前で保存してみたけど、 こっちじゃちゃんと出力されてるよ。 Doxyfile 晒してもらえるなら、何が違うか比べてみるけど。 >>198 もしかして、SHOW_FILESがOFFになってない? Doxywizard使ってるなら、ExpartのBuildの下の方。 >>200 丁寧にありがとうございます。 Doxyfileは以下です。 C++ code - 1503 lines - codepad ttp://codepad.org/aNCHcRW3 お願いします。 追記: SHOW_FILES=NOになっていましたが、 YESにしても変わりませんでした。 私の環境は windows xp sp2 doxygen 1.5.9です。 >>201 WARN_IF_DOC_ERROR を ON にしたら判明した。 ENABLE_PREPROCESSING が OFF だとマクロは見てくれないらしい。 補足 WARN_IF_DOC_ERROR を ON にしたら、 「マクロにコメント書いてるけど、ENABLE_PREPROCESSINGがOFFだからスキップしたよ」 というようなメッセージが表示された。 >>204 ありがとうございます。 WARN_IF_DOC_ERRORとENABLE_PREPROCESSINGをYESにしてみましたが、 結果は代わりありませんでした。 Doxyfileはこちらです。 ttp://codepad.org/rsH3deU0 設定を読み込み直していないなどということはなく。 doxygenのウィンドウに表示される情報は ttp://codepad.org/bqYOU7ug の通りです。 すみませんがよろしくお願い申し上げます。 追記: テキストエディタでDoxyfileを開き、 = NO を検索して全て = YES に置換してみました。 それでdoxygenを走らせたところ、見事#defineは出力されました。 やはり設定が問題な様です。 どこの設定が問題なのか探るために Doxyfileにて二分木法的にNOをYESに置換してみました。 ファイルのど真ん中の行を基準に上だけないし下だけを 全部NO→YES置換を行いました。 しかし、このどちらも#defineが出力されません。 やはり複数の設定項目が関わっているようです。 解決しました。 正解は ・ENABLE_PREPROCESSINGをYESにする。 ・SHOW_FILESをYESにする。 でした。両方が同時に満たされていないとだめなようです。 お手数をおかけ致しました! >>205-208 解決したようなのでもういいかもしれないけど、 WARN〜系の設定は、出力状態を変更させるためのものではなくて、 コメント付けてるのに出力されない設定になってるとか、 記述漏れがあるとか、そういうエラーメッセージを表示するためのもの。 今後何かうまくいかないときに参考になるかもしれないので念のため。 >>209 はい、WARN〜系の設定に関して、よく頭に入れておきます。 ありがとうございました。 Windows XP SP2, doxygen 1.5.9です。 htmlドキュメントを生成すると、 本文中のstd::coutのようなスコープ解決演算子が消えてしまい、 stdcoutになってしまうことが多々あります。 再現するソースやその結果のhtml, Doxyfileは以下の様です。 ttp://loda.jp/uploader_nrnrnr/?id=3 具体的にはこのソースにて Test::foo()は numをstd::coutに出力します。 になるはずが Test::foo()は numをstdcoutに出力します。 になってしまいます。 再現条件は絞れておりません。 どうかお知恵をおかしください。 よろしくお願い申し上げます。 >>211 理由はよく分からないけど、std::coutの前後に空白を入れたら正しくなりました。 識別子っぽいものに非ASCII文字がくっついてたらおかしくなるってことじゃないかと思うんですが。 >>212 たしかに、前後に空白で正しく表示されます。 本当に適用したいソース(再現用ソースでない)でもうまく表示されます。 ありがとうございました。 >>195 今のdoxywizardはver.1.5.8(去年の暮れ頃)からですね。 基本的な設定項目だけのwizardモードと、 設定可能な項目が全部表示されるexpertモードの2本立てというのは 昔も今も変わりませんが、 設定を変えたら保存しないと実行できなかったとか、 設定項目のセクション切り替えがタブで、expertモードだと たくさん並んでるのをぐるぐるスクロールさせる必要があったとか、 細かいところで少し不便でした。 マニュアルに載ってるスクリーンショットは旧バージョンのような気がします。 doxygenで、1カ所に書いたコメントを複数箇所で参照する方法はありますか? 例えば、 hoge.h内で@version 1.1.1 という記述が同じhoge.h内で他にも複数箇所に登場する場合、 全部に@version 1.1.1と書いてしまうとバージョンを上げる時に 全箇所を手動で修正する羽目になってしまいます。 どうにかする手段はありますか? >>215 設定ファイルのALIASESで@version 1.1.1に別名をつければ、 バージョンを上げるときはそこだけ変えればOK というのはどうでしょう? 質問です。 いままでのプログラムは以下のようにコメントしていたのですが、 doxygenでは/** */の形式にしないとドキュメント作成はできないのでしょうか? コメント部分を目立たせたいので、できれば今までのコメント形式を維持したいのですが・・ 今までのコメント例 //******************************************************** // Test.cpp // 2009.09 by Tester // テスト用のクラス //******************************************************** これを /** * * * */ 形式にするのは少し抵抗があります >>217 特定の形式にしないと、ドキュメントにしないコメントと区別できないですからね…… 使えるコメント形式はマニュアルの「Documenting the code」にいろいろ例があります。 (日本語マニュアルは古くて少し情報が少ないです) 今までのに比較的近いのは /*****************************************************//** * Test.cpp * 2009.09 by Tester * テスト用のクラス *********************************************************/ でしょうか。 >>217 最初と最後の //****** はそのままで、途中の行だけ先頭の//を3文字にすればいい つまり、こうだな。 //******************************************************** /// \file Test.cpp /// \date 2009.09 /// \author Tester /// \brief テスト用のクラス //******************************************************** >>217 俺も抵抗があったけど、 変えてみたら意外と平気だったよ。 要は見慣れるかどうか。 >>216 ALIASES なんてものがあるのですね。 ありがとうございます、試してみます。 >>218-221 thanks ですが、ファイルの最初のコメントを //******************************************************** /// \file Test.cpp /// @file TEST.cpp //******************************************************** と色々やってみたのですがうまくいきませんでした・・ ファイルの最初だと///ではドキュメント化されないのでしょうか クラス宣言前や関数前では///で書いたコメントはちゃんとドキュメント のコメントとなっておりました。 ちなみに、ファイル一覧からコードを見るとなぜか明朝体?で表示されてしまいます。 以下のドキュメントのようにゴシック表示をしたいのですが、Font設定はどのようにすればよいでしょうか? http://www.ee.t-kougei.ac.jp/tuushin/lecture/technicalWriting/euclid/html/euclid_8c-source.html 追加で質問失礼。 Player.hの内容↓ /** @brief クラスの簡易説明 * このクラスの使用目的・使用方法など詳しい情報を書く。 * @todo 必要であれば記述 * @bug バグがあれば記述 */ #if !defined (__PLAYER_H__) #define __PLAYER_H__ class CPlayer { ... } というプログラムだと、インクルードガードのほうに マクロ定義 #define __PLAYER_INFO_BASE_H__ クラスの簡易説明 * このクラスの使用目的・使用方法など詳しい情報を書く。 というドキュメントが付いてしまうのですが、 インクルードガードは一番上に書かなければいけないのでしょうか? できればファイルに関するコメントを一番上に記述したいのですが・・・ さらに追加質問ですいませんorz 出力されたドキュメントは任意の名前のフォルダに作成されますが、 index.htmlが他の細かいファイルと一緒のフォルダにあるため探しづらいです。 そのため、index.htmlだけ残して他のファイルを別のフォルダに押し込む というようなフォルダ構成を構築したいのですが、そういったことは可能でしょうか? >>223 ファイルの最初のコメント: ファイル名の大文字・小文字の問題かもしれません。 ファイル名無しで @file だけにしてみてはどうでしょうか。 フォント: フォントはデフォルトのスタイルシートで、 font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; と設定されてるので、 特にカスタマイズしてなければゴシックで表示されるはずなんですが。 >>224 対象を指定しないドキュメントは、直後にあるものに関連づけられます。 ファイルに関するコメントにしたいなら、@file が必須です。 >>224 本題とは直接関係ないと思いますが、ドキュメントに「 * 」が入ってるのが気になりました。 コメント行頭の「 * 」のところ、全角スペース使ってませんか? >>226-227 thanks. 一度doxygenを全削除して再インストールしたら なんとかファイル要約関連のコメントはでるようにできました。 また質問なのですが、 以下のような複数行について同じコメントをつけたい場合は 何かうまい記述法はありますか? 例: /// 3D座標を示す値. int nX; int nY; int nZ; このままですと、nXだけにコメントがついてしまうため、 3つの変数全てに同じコメントを出すようにしたいのですが・・・ int nX;///< 3D座標を示す値x. int nY;///< 3D座標を示す値y. int nZ;///< 3D座標を示す値z. これだと冗長な感じでちょっと抵抗があります >>229 普通は、一つのコメントで括られるような変数は構造体に入れるもんじゃね? >>231 座標とかだと、配列の方が扱いやすいかも 構造体の方が見やすいけどね C++ code - 50 lines - codepad ttp://codepad.org/imFgWQsK これからdoxygenでhtmlドキュメントを生成させると、 メンバ一覧のページの上にある目次の部分は すべてのメンバ一覧 Public メソッド void foo (bool) void foo (short) void foo (int) void foo (long) void foo (double) void bar (bool) void bar (short) void bar (int) void bar (long) void bar (double) となります。このように並ぶと微妙に見づらいので すべてのメンバ一覧 Public メソッド foo系のメンバは void foo (bool) void foo (short) void foo (int) void foo (long) void foo (double) bar系のメンバは void bar (bool) void bar (short) void bar (int) void bar (long) void bar (double) の様にコメントをこの場所に入れたいしたいのですが、可能でしょうか? >>234 マニュアルの「Grouping」(日本語版マニュアルだと「グループ化」)のページを見てください >>235 それで出来るのですね。 ありがとうございます。見てきます。 doxygenで作ったthtmlドキュメントの 若干ながらフォントサイズが小さすぎると感じます。 このフォントサイズを大きくすることはできますか? C++ code - 17 lines - codepad ttp://codepad.org/vf7DFqYq とりあえずこの様にしてみました。 /** document former */ がメンバ関数全部について、 /** document latter */ がメンバ関数void func_1_InGroup1()だけにつくかと期待したのですが、 結果は void Test::func_1_InGroup1に document former document latter と付いただけでした。 どこが誤っているでしょうか? よろしくお願いいたします。 C++ code - 26 lines - codepad ttp://codepad.org/wOT4IAlv とりあえずこれで行けそうです。 ・・・法則性がわからない。 法則性はその>>238 と>>239 の違いの@nameの有無の部分ですよ。 マニュアルより: ブロックの開標識の前に、独立したコメント・ブロックを置くこともできます。 このブロックは、@name (または、\name) コマンドを含む必要があり、 グループのヘッダーを指定します。 そうしたければ、グループに関するより詳しい情報をコメント・ブロックに 含めることもできます。 >>240 doxygen用語の理解が今ひとつ足りなかったようです。 親切にありがとうございました。 Use built-in class diagram generator だと継承に関するクラス階層図がうまく表示されますが、 Use dot tool from the GraphViz package だとうまく表示されません。 このようなHTMLになってしまいます。 ttp://loda.jp/uploader_nrnrnr/?id=4 (これには再現する簡単なソースとDoxyfile、出来上がったHTMLが含まれています。) 環境はWindows XP SP2で、 doxygenはdoxygen-1.5.9-setup.exeを使ってインストールしました。 GraphVizはgraphviz-2.22.2.msiを使ってインストールしました。 GraphVizの問題だとしたら若干スレ違いかもしれませんが、 よろしくお願いいたします。 C++ code - 25 lines - codepad サンプルソースが腐ってたので ttp://codepad.org/AwsZMCHk これでお願いします。 >>242-243 DOT_FONTSIZEが小さい(デフォルト値は10)のが気になりますが、 正直なところデフォルト設定と余りに違いすぎて、それだけなのかどうかは何とも。 もしこだわって作りこんだ設定でないのなら、一度デフォルト設定に戻して、 最低限必要なところだけ変えるようにしてみてはどうでしょう? デフォルト設定にはメニューから[Settings]→[Reset to factory defaults]で戻せます。 >>242 どこを問題視したいのか判らんが、HAVE_DOTがNOだからクラス階層図が出ないのは当たり前なんだが。 つーか、>>244 も含めて Doxyfile位真面目に読んでくれ。 >>244-245 ありがとうございます。 教えを頼りに読んできます。 >>242 , >>245 >>242 のドキュメントではdotファイルが吐かれてるし、 クラス階層図はdotファイルの内容どおりに生成されてます。 文字が読めないのはフォントサイズが4のためです。 コラボレーション図はdotにノードがなぜか出力されてませんが、 画像ファイル自体は真っ白なのが存在していて、 dotファイルの内容どおりには生成されているといえます。 なので、これらはHAVE_DOT=YESの状態で生成されたはずです。 DoxyfileはHAVE_DOT=YESにする前に保存したものと思われます。 dotの中身が異常なので、ほかに問題があると思います。 Doxygenて __declspec(dllexport) int WINAPI MyFunc(int arg); とか、それを簡略化して #define API(type) __declspec(dllexport) type WINAPI とした場合に API(int) MyFunc(int arg); みたいな宣言もちゃんと処理してくれる? >>247 ありがとうございます。 全然こだわって作りこんだ設定ではありませんので、 デフォルトに戻すことに抵抗はありません。 いろいろ教えの通り試してみます! http://appleloader.bbsnow.net/pic_loader/nomal/html/1_11.html Exportタブに何も表示されないのですがバグですか・・・? ノートPCでは表示されました 両方 WinXP 32bit SP3 です >>248 __declspec()は関数と誤認識されるので、 PREDEFINED で __declspec(x)= を定義するなどして、 プリプロセス時に取り除いてやる必要があります。 (マニュアルの「Preprocessing」に書かれてます) >>250 eeepc + winxp でやってるけど、ウチも全く同じ現象になるよ。 レスありがとう。 じゃあエクスポートタブの設定はできないのですかね・・・? 日本語マニュアルを作成したいので以下の設定をしたいのですが 設定する箇所は2箇所です。まずProject内にある「OUTPUT_LANGUAGE」をJapaneseにします。これで日本語マニュアルが作成されます。ただ、このままだと文字化けが起こります。 続いて、Inputの中にあるINPUT_ENCODINGに「CP932」と文字を打ちます。CP932というのはMicrosoftなどが拡張したShift-JIS文字コードです。Visual Studioなどのソースコードはこの文字コードを指定するとDoxygenでうまく読み込んでくれます。 改善方法分かる人いたらアドバイスください よろしくお願いします >>253 設定内容を保存したファイルはテキストなので、直接編集できますよ。 >>255 念のため。 PROJECT_NAME 等に日本語を使ってる場合、UTF-8で保存されてるので気を付けて。 doxygen20090611.zip - uploader_nrnrnr ttp://loda.jp/uploader_nrnrnr/?id=5 このaaaaaa.hとDoxyfileからdoxygenでhtmlドキュメントを生成させると、 aaaaaa.h ソースコードを見る。 マクロ定義 #define ABS(x) #define MAX(x, y) #define MIN(x, y) #define MYMACRO "表示されたくない。" このように表示されるのですが、私は最後の #define MYMACRO "表示されたくない。" を #define MYMACRO の様にしたいと思っております。 また、各マクロの説明文にある 値:〜〜 というのも非表示にしたいと思います。 どうすればよろしいでしょうか? 関数テンプレートなどの テンプレート引数を出力する項目は作れませんか? >>257 MAX_INITIALIZER_LINES を 0 にするのはどうでしょう? 変数の初期値なども全部表示されなくなりますが。 >>259 MAX_INITIALIZER_LINESを0にする方法でいけそうです。 ありがとうございます。 doxygenの公式サイト(英語版) が見たいのだが、リンクが死んでいる気がする。 それとも単に落ちただけだろうか? 単に落ちただけだったようだ。 勝手に騒いでスマソ。 Windows XP SP2, doxygen 1.5.9です。 Sample.h ttp://codepad.org/Fijir9gC これでhtmlドキュメントを生成させますと、 クラス階層図(継承関係) が表示されません。 class Sample は std::runtime_error をpublic継承しているので この継承の様子をGraphVizでグラフ表示させたいと思っているのですが、 どうすればよろしいでしょうか? ソースとDoxyfile、出来上がったHTMLは ttp://loda.jp/uploader_nrnrnr/?id=7 です。 同じDoxyfileを使っても、関数の呼び出し関係は うまくGraphVizでグラフ化されて表示されています。 よろしくお願いいたします。 >>266 HIDE_UNDOC_RELATIONS が YES だからじゃないかと思いますが、 NO にしてもライブラリからの継承まで図に含めてくれるかどうか。 INCLUDE_PATH にコンパイラのヘッダファイルのパスの設定もして試してみてください。 >>267 HIDE_UNDOC_RELATIONS をNOにしたところ、 > INCLUDE_PATH にコンパイラのヘッダファイルのパスの設定 これをしなくても希望通りになりました。 ttp://imagepot.net/view/124550817681.jpg 感謝感激です。 どうもありがとうございました。 >>250 どうもパネル作成時のミス?のようです。 Exportタブの中身はWizardタブと同じように左右分割されているらしく、 「左側の何も無いパネル」「右側の設定パネル」という風になっています。 それで「左側の何も無いパネル」の幅が最大になっているため、 何も表示されていないように見えるようです。 マウスを右端に移動させるとカーソル形状が変化しますので、 そのまま左にドラッグすると設定内容のパネルが見えるようになりました。 少し訂正 左右分割だけではなく左側が上下に分割された3ペイン方式でした。 「左側の何も無いパネル」のように見えるますが下のほうに移動してるだけでした。 270と同じように下から上にドラッグすると表示物が見えるようになります。 Windows XP SP2, doxygen 1.5.9です。 ttp://loda.jp/uploader_nrnrnr/?id=9 このSample.hを同じくこのDoxyfileで HTMLドキュメント化したのですが、 文字サイズが小さくて困っております。 DOT_FONTSIZE = 100 FORMULA_FONTSIZE = 100 の様にしてみても、フォントサイズが変わりません。 sakura-editor: クラス CDlgCancel ttp://sakura-editor.sourceforge.net/doxygen/classCDlgCancel.html ここにあるような 文字サイズにしたいのですが、どうすればよろしいでしょうか? よろしくお願い申し上げます。 >>273 ドキュメント見てみたけど普通の文字サイズだと思うけど。 そういえば最近のバージョンはちょっと前のより文字サイズ小さいかも。 DOT_FONTSIZE はグラフの文字サイズ、FORMULA_FONTSIZE は式の文字サイズです。 文字サイズを変えるにはスタイルシートをカスタマイズすることになると思う。 やったことないけど、マニュアルによると、 doxygen -w html header.html footer.html stylesheet.css でデフォルトのファイルを出力して、それを書き換えて Doxyfile の HTML_STYLESHEET でそのファイルを指定するらしいです。 >>274 その方法で解決できました。 文字サイズは見る人によって好みがあると思っていましたので、 stylesheet.cssのフォントサイズ指定の部分を削除しました。 これにより人によって好みの文字サイズにブラウザ側で変更できるようになりました。 (前はブラウザ側でも文字サイズの変更が(通常操作の範囲では)できませんでした。) どうもありがとうございました。 Doxygen で表を表示する方法を教えてください。 ttp://www.doxygen.jp/htmlcmds.html ここの<table>タグ以外にはありますか? Doxygenはドキュメント生成ツールであってドキュメント記述言語ではないから 適宜表は表示されるよ。例えば関数一覧とかファイル一覧とか。 任意の表を記述したいと言うことなら話は別で。 元々html自体に表を記述するタグはtable以外にはないに等しいからねぇ。 横方向に高々2カラムしかないなら<ul>などで代用できなくもないけれど。 >>277 ありがとうございます。 良さそうなのでもうすこしマニュアルを読み込んできます。 >>276-278 私も任意の表をお手軽に作る方法はないかなと思ってました。 今ふと思いついたんですが、関連のタグの組み合わせをALIASESで簡略化したらちょっとはマシかも。 Doxygen 1.6.0で何か変わったことある? 設定とかは変わってないよね? また設定しなおしとか嫌よ。 >>282 二重引用符で囲っていた中で @a とか使ってたのが利かなくなってましたorz まんま " @a hogehoge "な具合に表示されてます。 バグなのか仕様変更なのかは知りません。 >>283 ありがとうございます。 私は@ではなく\で書いているので問題ないですかね。 >>284 それは試してないのでわかりません。 以前のバージョンから、「@」は利かなくて「\」なら利く局面もありましたから、 (例えば @dot 内の URL パラメータに \ref を使うとか) もしかすると問題ないかもしれません。 なお、「"」の代わりに「"」を使えば、「@a」も機能しました。 ソースコメントでの視認性を考えるとやりたくないですが。 >>285 あ、「”」の代わりに「&quot;」です。 (今度はちゃんと表示されるかな) >>285-286 なるほど。 詳細 誠にありがとうございます。 今のdoxygenで問題がないので、 念のためdoxygenバージョンアップするのは 控えておこうかと思います。 補足です。 >>283 のような状況になっているということはつまり、 二重引用符で囲まれている部分が区別されるようになったということで、 いままで単純に1文字として「"」を使ってた部分や、 うっかり片方の引用符を忘れていた部分でエラーが出ます。 doxygenで生成される、 左側の目次(ツリービュー)を自分が好きに 並べる方法している方いらっしゃいませんか? 誰か教えてください。 Windows XP SP2, doxygen 1.6.1です。 ttp://loda.jp/uploader_nrnrnr/?id=10 このhoge.hを同じくこのDoxyfileで HTMLドキュメント化したのですが、 クラスの構成のところで説明の最初の文字が http://imagepot.net/view/125152409985.gif の様に大文字になってしまいます。 自動的に大文字にしてくれるこの仕様を回避したいのですが、 どうすればよろしいでしょうか? よろしくお願い申し上げます。 なお、doxygen 1.5.9でも同様の現象でした。 2chの方ばかり見ておりました。 ありがとうございます。 と思いましたら解決しませんでした。 \ mynamesp::hogeクラスです。とすると、不要な半角の\が入ってしまいます。 ! mynamesp::hogeクラスです。とすると、不要な半角の!が入ってしまいます。 mynamesp::hogeクラスです。とすると、doxygenの抱えるバグ(*)により、mynamesphogeとなってしまいます。 (*)全角文字に半角英数が続き、スコープ解決演算子である::がその後ろに来たとき、::が無視されるというバグです。 どうしたらいいでしょうか? http://loda.jp/uploader_nrnrnr/?id=10&dsq=15701579#comment-15701579 で質問させていただいている者です。 >>294 lodaのコメントは、行頭に「\」や「!」を入れるのが 大文字化されないための書き方という意味じゃなくて、 文の先頭にクラス名がこない書き方を工夫すればという意味だと思う。 # 一覧表以外のところでは大文字化してないから、個人的にはバグじゃないかと思うけど。 「::」が消える件は >>211-213 を参照。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる