1

API ドキュメントを自動生成したい C ライブラリがあります。Doxygen は、この種のことの事実上のツールであるように思われるので、テストするために (私のライブラリと同じコーディング スタイルを使用して) いくつかのおもちゃのクラスを作成しました。コーディング スタイルに関するいくつかの注意事項:

  • .h各クラスには、クラスのデータ構造の typedef とすべてのクラス メソッドのプロトタイプを含むヘッダー ( ) ファイルがあります。これは、私のライブラリのユーザーに表示してもらいたい情報です。
  • 対応する.cファイルには、完全なデータ構造定義とすべてのクラス メソッドの実装が含まれています。実装の詳細は、API ドキュメントには表示されません。
  • おもちゃのサンプル コードについては、https://github.com/standage/doc-testを参照してください。

サンプルで Doyxgen を実行すると、http://standage.github.io/doc-testが得られます。結果として得られるドキュメントは少しぎこちなく、データ構造のリストとファイルのリストがあります。理想的には、私が望むのはクラスリストです。各クラスページには、そのクラスに関連付けられた関数/メソッドが表示され、クラス名はそのクラスの詳細ページにリンクされています。これは Doxygen (または他のツール) で可能ですか?

4

2 に答える 2

1

Doxygen は「C クラス」のドキュメントをサポートしています - 追加するだけです

  1. \classデータメンバーを含む構造体へのディレクティブ
  2. その機能への\memberofディレクティブ
  3. \publicまたは\private関数/メンバーへのディレクティブ

例:

/** This is My Class!
    \class MyClass
    */
typedef struct MyClass
{
 /** This is member A 
   \private
   */
 int memberA;
 /** This is member B 
   \private
   */
 int memberB;

} MyClass;

/** A private member function of MyClass
    \param i Some value
    \private
    \memberof MyClass
    */
static void MyClass_privateFunction(struct MyClass* this, int i)
{
}

/** A public member function of MyClass
    \param j Some other value
    \public
    \memberof MyClass
    */
void MyClass_publicFunction(struct MyClass* this, int j)
{
}

Doxygen を に設定EXTRACT_PRIVATEするNOと、公開部分のみが文書化されます。

于 2016-08-22T08:02:47.977 に答える
0

設定ファイルの Exclude 一連のタグを見てください。

ソースは ./src/ ディレクトリにあるため、1 つのオプションとして、次のいずれかを使用できます。

ディレクトリを除外します。

EXCLUDE = /src

ファイル名のパターンを除外します。

EXCLUDE_PATTERNS = *.c

これらは私の頭のてっぺんから外れています。いくつかのパス情報を追加する必要がある場合があります。最初または両方を使用すると、C ファイルにコメントがない出力が生成されると思います。

補足として、「クラス」のインターフェースに構造を使用すると、要件を満たすと思いますか?

于 2013-09-19T20:29:54.893 に答える