【コメント】doxygen【コンソメ】
■ このスレッドは過去ログ倉庫に格納されています
>>383 ありがとうございます。 そうですか。 >>324->>324 は気付きませんでした。 じゃあやっぱ1.6.2で同じように作れるように自分でどうにか工夫するのが良い って感じですかね。(私の主体性0) ちなみに Doxyfile 1.6.1 デフォルト ttp://codepad.org/olhvPmWM Doxyfile 1.6.2 デフォルト ttp://codepad.org/wA3SWMYO 1.6.2に更新したら、pageコマンドから作られたhtmlにタイトルが出力されなくなった… 似たような症状の人いる? >>386 おお! 俺も!俺も! どうすりゃいいんだろうorz >>386-387 pageに付ける名前に英数字以外(下線とか)を含まないように、 というようなことがMLに書かれてました。 まじか! >>388 ありがとうございます。 感謝です。。。 >>388 トンクス!表示されたぜ! ML見てきたんだが、 >ドキュメントにアンダーバー不許可と明示されてはいないけど、 >名前は英文字と数字の組み合わせからなる、とは書かれていて、 >そこにアンダーバーは含まれていないでしょ。 みたいな返答だった。 でも以前は使えてたわけだし、@page以外のタグは問題ないし、 ドキュメントが更新された形跡もないし、やっぱなんかバグっぽいよね。 >>390 このまま待機で、いつの間にか (次のverで)修正されるんじゃないかなぁ? 次のverっていつでるんだ。。。 >>391 Bugzilla 見たら、次のバージョンで修正されることになってました。 私も別のバグで次のバージョン待ちです… Doxygen Release 1.6.2 (release date 30-12-2009) Doxygen Release 1.6.1 (release date 25-08-2009) Doxygen Release 1.6.0 (release date 20-08-2009) Doxygen Release 1.5.9 (release date 30-04-2009) Doxygen Release 1.5.8 (release date 27-12-2008) Doxygen Release 1.5.7.1 (release date 5-10-2008) Doxygen Release 1.5.7 (release date 28-9-2008) Doxygen Release 1.5.6 (release date 18-5-2008) Doxygen Release 1.5.5 (release date 10-2-2008) Doxygen Release 1.5.4 (release date 27-10-2007) Doxygen Release 1.5.3 (release date 27-7-2007) Doxygen Release 1.5.2 (release date 4-4-2007) Doxygen Release 1.5.1 (release date 29-10-2006) Doxygen Release 1.5.0 (release date 16-10-2006) Doxygen Release 1.4.7 (release date 11-06-2006) ということで、次にリリースされるのは 4月終わりごろと推測されます。 うわぁ、待ってられないよ。 ・・・ > Doxygen Release 1.6.1 (release date 25-08-2009) > Doxygen Release 1.6.0 (release date 20-08-2009) 見たいに短い間隔のリリースもあるっちゃあるんだが、 すでにDoxygen Release 1.6.2リリースから1ヶ月たっても 新しい版がでていないしなぁ。 >>388 氏の解決策に乗っかろうかなぁ。。。 <報告> 英数字どころか、小文字じゃないとダメみたいです。 AbCdE とかはだめで、 abcde ならOKのようです。 Doxygen Release 1.6.2 + WinXPです。 ttp://codepad.org/UOnh6aUc これを出力させると ttp://uploader.rgr.jp/src/up1961.jpg このように、inlineでもないのに勝手にinlineになります。 なお、 ttp://codepad.org/iT6VHAtw のように、テンプレートでなければ勝手にinlineにはならないようです。 ttp://uploader.rgr.jp/src/up1962.jpg 同じ症状の方いらっしゃいますか? あと、もし古いバージョンで試してくださる方がいらっしゃったら 是非結果を教えてください。 よろしくお願い申し上げます。 Graphviz - Graph Visualization Software が最新版でました!version 2.26.3 になりました。 ・・・そしてインストールしたらエラーになったので、 同じ症状で悩んでいる方がもしいらしたら参考にしてください。 解決策のリンク ttp://old.nabble.com/Dot-problems-td15185555.html ************************************************************************ Oren Almog wrote: I am using the windows version. Doxygen seems to work fine but I repeatedly get errors when it calls dot to generate call graphs (or any other graphs). c0f5d09662a9af0a3f709cb57d6841_cgraph.dot" -Tpng -o "ex__cmds_8c_abc0f5d09662a9af0a3f709cb57d6841_cgraph.png"' Problems running dot: exit code=-1, command='dot', Dot is in my PATH. To be sure I tried to create the graph manually my going to the directory and calling dot with the same parameters, I get a message about a missing font and that file will look ugly but the png is generated with no further input required from me. Any ideas? ************************************************************************ biljana wrote: You have to install Graphviz and set the DOT_PATH to the Graphviz/bin folder. Also you should set HAVE_DOT to YES. >>397 のバグですが、 Doxygen 1.6.3 で直っていないようです。 バグ報告しないと直らないんですかねぇ。 どこからバグ報告すればいいやら。 Doxygen 1.6.3 で @pageで生成したページのタイトルが付かないバグ は、解決しているようですね。 WinXP version1.6.3で、S-JISのファイルを変換したいのですが、設定ファイルを INPUT_ENCODING = CP932 と設定した場合は、 Error: failed to translate characters from CP932 to UTF-8: check INPUT_ENCODING とエラーがでます。 INPUT_ENCODING = SHIFT_JIS とした場合は Error: failed to translate characters from SHIFT_JIS to UTF-8: check INPUT_ENCODING とエラーがでます。 DOXYFILE_ENCODING = SHIFT_JIS として、 PROJECT_NAMEに日本語を設定したら反映されます。 何か他に設定する必要があるのでしょうか? >>404 INPUT_ENCODING はソースファイルのエンコーディングの設定で、 DOXYFILE_ENCODING は設定ファイル自身のエンコーディングの設定です。 > WinXP version1.6.3で、S-JISのファイルを変換したいのですが、 のS-JISのファイルというのは設定ファイルじゃなくソースファイルのことですか? だったら、 INPUT_ENCODING = CP932 で合ってるはずなんですが。 S-JISのつもりで実はUnicodeだったなんてことはないですか? > DOXYFILE_ENCODING = SHIFT_JIS > として、 > PROJECT_NAMEに日本語を設定したら反映されます。 設定ファイルはDoxywizardを使わないで、テキストエディタで書き換えてるんですか? Doxywizardだと DOXYFILE_ENCODING は UTF-8 にしないと正しく動作しないはずなので。 >>405 ソースファイルを確認したところ、 新規に追加したものはSHIFT_JISだったのですが、 もともとあったソースは中国語のソースで、文字コードが"繁体字中国語"というもののようで、 このファイルを解析する時に、SHIFT_JISでないということで、エラーになるようです。 ありがとうございました。 こんなの作ってみた。良かったら使ってみて。 つ ttp://sourceforge.jp/projects/sfnet_doxygemplate/ ttp://sourceforge.net/projects/doxygemplate/ 今のところWindows専用だけど,Qtで作ってるのでLinuxでもビルドできるはず。 俺はWindowsオンリーなので,誰か手伝ってくれると助かるんだけど... >>408 ほー。そういう着眼点か。 そのdoxygemplateなら、 WindowsビルドしかなくてもLinuxでもWineを使えば普通に動きそうだ。 >>409 レスサンクス。 > WindowsビルドしかなくてもLinuxでもWineを使えば普通に動きそうだ。 Linuxのことは知らないのでググってみtけど面白そう。 タスクトレイもちゃんと使えるの? >>410 使い方を簡単に言うと、 ・起動するとタスクトレイに常駐する。 ・エディタで編集中のC/C++のソースの関数宣言(.hでの定義部でも.cや.cppの実装部 でもOK)をクリップボードにコピーする。宣言の頭から、引数リストの閉じカッコまでが 入ってればOK。それ以降は入っていても構わないが無視される。 ・タスクトレイのアイコンを右クリックして「テンプレート編集」を選ぶと、編集画面が 現れる。この段階で既に関数の引数やリターン値を解析して、retval コマンド とリターン値の型や、param コマンドと引数名が作成されている。 この画面で param コマンドの[in]⇔[out]⇔[in,out]を切り替えたり、 行の削除/追加や、details など幾つかのコマンドの追加が出来る。 ・編集が終わったら「クリップボード保存」を押すと編集した内容が クリップボードにコピーされ、編集画面が閉じる。 ・テキストエディタで関数宣言の上にクリップボードから作成されたテンプレートを ペーストする。 こんな感じ。 >>411 なるほど、面白そうじゃん。エディタのマクロと巧く連携できればそこそこシームレスに編集できそうだ。 >>411 > タスクトレイもちゃんと使えるの? 俺もそんなにデスクトップLinuxを使い込んでいる訳じゃ無いので、 ごめん、わかんないわ。 タスクトレイに相当するとこも使えそうな気がするけど、 もしダメでもまあLinuxユーザーならソースだけおいとけば 自分でビルドする人が多いだろうしいいんでね? C言語、UTF-8、日本語コメントあり を doxygen 1.6.3 W32TeX (texinst2010.zip) でpdf出力のためにLaTeXで出力させてみたんですが epsの出力で Generating caller graph for function XXXXXXXX epstopdf ($Id: epstopdf.pl 17507 2010-03-19 22:52:56Z karl $) 2.15 !!! Error: Writing to gs failed, signal 127 ってなります回避する方法はあるのでしょうか? >>397 のバグですが、 Doxygen 1.6.3 で直っていないようでしたので報告しました。 Bug 612858 ? Doxygen takes a NON-INLINE template function for INLINE one mistakenly. ttps://bugzilla.gnome.org/show_bug.cgi 直してくれるそうです。 やったー!! >>408 面白いですね。 個人的にはタスクトレイに常駐するより、 Alt + tab で切り替えられる方が使いやすい気がしますが、 どうなんでしょう? Linuxでどうするの?って問題も無くなると思いますし。 ちなみにemacsユーザーの人は doxymacs使ってるよね? >>418 昨日1.7.0インストールしたばかり(ToT) >>419 レスありがとうございます。 > 個人的にはタスクトレイに常駐するより、 > Alt + tab で切り替えられる方が使いやすい気がしますが、 > どうなんでしょう? なるほど,それはいいかも知れません。 Linuxは使わないので知らないんですが,Linuxでもアプリケーションの切り替え はAlt + tabなんですか? 別にそうでなくても問題はないんですが。 実は最初はWIN32 APIを使って指定キー(Ctrl または Shift または Alt)の指定 回数連打でアクティブになるようにしてたんですが,これだとWindows専用に なってしまうのでやめたんです。でもやはりキーボードで操作できた方が いいですよね。 他の操作もキーボードでできるようにするなど,まだ改良点がありますし, Alt + tabでアクティブになったときにクリップボードから関数の宣言部分を 取り出して処理するとなると,全体の構成も考え直さなければならないので, 少し時間が必要だと思いますが,やってみたいと思います。 ありがとうございました。 >>421 「こんなの」がどんなのか判らないから試してみる気にもなれないのだが。 せめて、どんなのか書いてくれ。 >>422 >>411 に書いたんですが。あと>>408 のリンク先のスクリーンショットを見て いただくと雰囲気がわかるかも知れません。 だからさぁ、なんでだらだら説明することしかできないの? あんたこそダラダラ聞いてないで、とっとと使ってみりゃいーじゃん。 売り物じゃないんだから、>>423 だってそうまで言われて使って欲しいとは思わんだろ。 >>424 機能の全容をまあまあ簡潔に説明されてるのに、それすら読まずにわざわざ文句書くのは引くわ。 >>428 もっと新しいのでもいいんでない? 私のところでは1.5.8で止まっているけど。 俺は毎回新しいのにしてるよ。 これから先 更新されていくにあたり、 あんまり最新から離れていると 一気に対応しなきゃならなくなっちゃってめんどくさいから。 genのHPでバージョン使用アンケートとか実施するべきだよな バージョンあげても劣化することが多いなら、良いベースから作った方がいい イタチごっこになりかねん いつの間にかスタイルシートが新しくなってるじゃないか pythonのソースってFilesに表れる? RHEL5に乗ってる 1.4.7を使ってるんだけど現れない。 クラスは現れるんだけど。 最新を野良ビルドしようと思ったけど依存関係は深いなあ。 >>433 公式の使用例だと、pythonの場合は@fileじゃなくて@package使ってるみたいだけど。 >>434 ヒントサンクス。 なるほど、そうするとNamespaceの方に現れますね。 defgroupとかは全然認識してくれないのにそれだけは効きます。 まあ、それでお茶を濁しますか。 既存のソースをdoxy化しようとしてるんだけど、全てのヘッダーに長いライセンス事項が 書かれてるので、@fileなんかをそのヘッダ上に追加するとファイルの説明にそれが全て 追加されるのが鬱陶しい。 これを隠す方法は何があるでしょう? とりあえず、 /** @file hoge.c doxygen 用のコメント */ /* 既存のヘッダーはこっちに隔離 */ ってしてるんですけど、もっといい方法があるなら知りたいです。 まっ、いいか。 しかしdoxygenいいねえ。 今のプロジェクトでドキュメントの無い、コメントの殆どない ライブラリを使わなくてはならないのだが、ソースを読みながら解析して理解した事はどんどん コメントに書き加えていき、doxygenを通すと立派なドキュメントが出来上がっていく。 ライブラリ内の論理構造からいくつかのグループに分け、中心となるファイルのコメントの中で @defgroupし、関連するファイルは@ingroupでそのグループにまとめる。 @defgroupした コメントの中ではそのグループの中での主要なコンポーネントを解説。 解説の中で引用する ファイル名とかクラス名(HogeClass::)、メンバー名等(HogeClass::hogeMemember)の参照は 全て自動的にリンクになるからそのままソースのナビゲーションが出来る。 最後に@mainpageを作ってこれらのグループ間の関連をメモし、@refでそれぞれのグループに リンクを張って出来上がり。 ソースを読んで自分なりにメモを作ったり、wikiにまとめたりとかは過去にしたけど、これは ソースに完全に統合されているので資産として生きながらえると期待する。 どっかにDoxygenで生成できる旨をコメントしておくことをお勧め。 でないと、Doxygenで生成されたhtmlを編集しようとする馬鹿が出てきかねない。 generated by doxygenってロゴがあるじゃないかー! graphiz 2.26.3使ってグラフ出力してるんだけど、画像にパスが格納されちゃうんだ 誰かクラス名もしくはファイル名だけ出力出来る方法知らない? doxyのバージョンによるのかな #ifdefで囲った部分が無視されるんですが、こういう場合はどうしたらいいんでしょう? #ifdef HOGE_VER //! 特定の場合専用の関数 void Hoge(); #endif DoxyfileでDEFINEできるから、そこでHOGE_VERをDEFINEすれば宜しいかと。 ありがとうございます。PREDEFINEてところに書いたらできました。 PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS とすれば #ifndef DOXYGEN_SHOULD_SKIP_THIS Doxygenに無視させたいコード #endif /* DOXYGEN_SHOULD_SKIP_THIS */ こんなふうに使えます。 Graphvizの話ってここでしてもいいすかね。 専用スレが見当たらないんだが まったく絡まないので、あとでスレ立てするわ 昔はGraphvixのスレあったみたいだし、続きってことにする Graphvixについて答えられる有識者はいるんだろうか。 うむ。寡聞にしてGraphvixなるものは与り知らないな。 vixじゃなくてvizだよ!わざとだよ!ついだよ! Graphvizって言えば、同じrankにあるnodeの位置関係のヒントって与えられないかな。 doxygenからの出力でも、関数ツリーの上下がある程度同じになってくれると助かるんだけど。 例えば、 main->a->b ->c-^ が ->c-v main->a->b になったりしないように。 >>454 Graphviz(というかdotエンジン)単体なら、group属性を指定しておけばある程度は制御できる。 doxygenからは(事実上)無理。関数ツリーの上下が変わるのって下請け関数の影響が大きいから レベルを指定して下請けまで展開しないようにするってのも手。まぁ、どうしてもってことなら自作するしかw 派生クラスで仮想関数を再定義した場合、派生クラスのメンバー一覧にこの関数が表示されますが、 これを非表示にするにはどうすればいいでしょうか? 数が多く基底クラスで表示してくれれば充分です。 ・仮想関数がprivateならDoxyfileでprivateなメンバ関数は出力しない設定にする ・#ifndefで括って、Doxyfileでそのマクロを定義する ・他の出力したい関数にDoxygenコメントが必ずあるなら、Doxygenコメントのない関数は出力しない設定にする 3番目の方法で出来ました。ありがとうございました。 HIDE_UNDOC_MEMBERS = YES ドキュメントづけは全部やるのでこれで大丈夫です。 doxygenで内部用と外部用のドキュメントの2種類を作りたいのですがどうのうな形にするのが いいですか。 とりあえず全部ドキュメントを書いておいて外部用の場合は 非公式なクラス、関数を隠したいのですが、どうすればいいのやら。 >>459 >>340 の応用で PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS とかにすれば。 これを内部用と外部用のマクロにすればおk! いや、まず @internal の使用を検討する方が先だろう。 >>461 @internal でいけました。 探していたのはこれです。有難うございました。 C++で多重継承していた場合、一番最後に指定したクラスのオーバーライド関数しか「〜を実装しています。」が出ないな。 例えば、 class BasicActor : public Actor, public IEventListener { だとActorの方の仮想関数をオーバーライドしても「〜を実装しています」が表示されない。 ActorとIEventListenerの順番を入れ替えると逆の方のクラスの関数の「〜を実装しています」が表示されない。 早く治るといいなあ。 doxygen凄く便利そうだな!だけどRTF出力がうまくいかね…。 一応>>138 のバイナリとdoxywizard(1.7.3)で試してるんだが、 OUTPUT_LANGUAGE=Japanese INPUT_ENCODING=CP932 以外に何か設定って必要なのか? もし良かったらだれかDoxyfileをうpしてくれると凄く助かるわ…。 >>468 OUTPUT_LANGUAGE=Japanese-en >>469 レスサンクス! 拾ってきたサンプルソースがCP932じゃなかったというどうしようもない原因でしたorz スレ汚しスマソ 1.7.4 が出たようですが.... 試してみた人います? 1.7.4の日本語のrtf出力やっぱりおかしい。 以下、対処メモ。 >102,>134を参考にソース修正・コンパイルして日本語rtf出力できたの確認。 doxygen-1.7.4/src/rtfgen.cppのencodeForOutputを修正 uint i; uint mbFlag=0; // ←追加 for (i=0;i<enc.size();i++) { uchar c = (uchar)enc.at(i); if (c>=0x80 || mbFlag==1) // ←修正 { char esc[10]; sprintf(esc,"\\'%X",c); mbFlag=1-mbFlag; // ←追加 t << esc; } else { t << (char)c; } } @だとドキュメント付けできて、\だとできないのは何故ですか? >>473 言ってることがよく判らん。普通に@paramでも\paramでもできると思うが。 >>474 ところが、\paramだとだめで、@paramだとできるんすよ。 何か切り替えるようなオプションがあるのだろうか? そのダメなファイルと環境とリビジョンについて詳しく。 #define HOGE 123 msg.h の 20 行で定義されています みたいな行番号表示をオフにするにはどうしたらいいの? 1.7.5.1 は日本語 rtf 出力の文字化けが直ったみたいだ。 C++で、ソースを弄りたくない他所のライブラリの基底クラスのpublicなメソッドのリファレンスを 自作の派生クラス側のソースで書く事ってできないもんでしょうか。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる