31

Doxygenでプリプロセッサ定義を文書化することは可能ですか?変数や関数と同じように実行できると期待していましたが、Doxygenの出力では、定義のドキュメントが「失われた」ようで、定義自体も含まれていません。

私は以下を試しました

/**My Preprocessor Macro.*/
#define TEST_DEFINE(x) (x*x)

/**@def TEST_DEFINE

   My Preprocessor Macro.
*/
#define TEST_DEFINE(x) (x*x)

また、「ファイルスコープ」だけでなく、グループ内に配置してみました(defgroup、addtogroup、ingroupを試しました)が、効果はありませんでした(ただし、グループ内の他の項目は意図したとおりに文書化されていました)。

さまざまなDoxygenオプションを調べましたが、定義の文書化を可能にする(または妨げる)ものは何も見つかりませんでした。

4

4 に答える 4

45

はい、可能です。Doxygenのドキュメントには次のように書かれています。

グローバルオブジェクト(関数、typedef、列挙型、マクロなど)を文書化するには、それらが定義されているファイルを文書化する必要があります。言い換えれば、少なくとも

/*! \file */

または

/** @file */

このファイルの行。

、、およびを使用して@defgroup、関連するアイテムが別々のファイルに表示されている場合でも、同じモジュールに入れることができます(詳細については、こちらのドキュメントを参照してください)。これが私のために働く最小限の例です(Doxygen1.6.3を使用):@addtogroup@ingroup

Doxyfile

# Empty file.

Test.h

/** @file */

/**My Preprocessor Macro.*/ 
#define TEST_DEFINE(x) (x*x) 

/**
 * @defgroup TEST_GROUP Test Group
 *
 * @{
 */

/** Test AAA documentation. */
#define TEST_AAA (1)
/** Test BBB documentation. */
#define TEST_BBB (2)
/** Test CCC documentation. */
#define TEST_CCC (3)
/** @} */

Foo.h

/** @file */

/**
 * @addtogroup TEST_GROUP
 *
 * @{
 */

/** @brief My Class. */     
class Foo {
    public:
        void method();
};

/** @} */

Bar.h

/** @file */

/**
 * @ingroup TEST_GROUP
 * My Function.
 */
void Bar();

この場合、TEST_DEFINEドキュメントはHTML出力の[ファイル]タブの下のTest.hエントリに表示され、その他の定義はクラスと関数とともに[モジュール]タブの[テストグループ]の下に表示されます。TEST_AAAFooBar

@fileコマンドの後にファイル名を付けると、次のようになります。

/** @file Test.h */

その場合、これはファイルの実際の名前と一致する必要があります。そうでない場合、ファイル内のアイテムのドキュメントは生成されません。

@fileコマンドを追加したくない場合の別の解決策はEXTRACT_ALL = YES、Doxyfileに設定することです。

これがお役に立てば幸いです。

于 2010-03-01T15:13:43.380 に答える
5

私の「C」ファイルでは、コメント形式と#define行を次のように使用しています。

/** @brief Number of milli-seconds to wait*/
#define kTimeoutMSec (2)

私のhtmlドキュメントには、私が指定したドキュメントが含まれています。(ファイルの先頭に@fileがあり、EXTRACT_ALL = YESです)

于 2010-04-30T21:22:46.790 に答える
3

EXTRACT_ALLオプションを設定してみてください。プロジェクトにその設定があり、#definesのドキュメントが生成されます。EXTRACT_ALLを使用せずにそれを行うよりエレガントな方法があるかもしれないので、ドキュメントを確認してください

http://www.doxygen.nl/config.html#cfg_extract_all

于 2010-03-01T14:23:47.827 に答える
2

前の答えに加えて、それはまたENABLE_PREPROCESSING=YES、Doxyfileにある必要があります。

于 2018-01-02T15:55:35.460 に答える