13

Doxygen を使用して、現在取り組んでいる C# プロジェクトの API ドキュメントを生成しています。このプロジェクトにはかなりの「内部」機能があり、Doxygen が生成する生成された html でこれらの署名を生成したくありません。

HIDE_FRIEND_COMPOUNDS を有効にしようとしましたが、生成されたドキュメントで内部クラスが公開されます。

誰もこれを行う方法を知っていますか?

4

6 に答える 6

10

Mac Hの回答へのアドオン。機能させるには、これらの追加の構成パラメーターを設定する必要があります。

# The PREDEFINED tag can be used to specify one or more macro names that 
# are defined before the preprocessor is started (similar to the -D option of 
# gcc).     

PREDEFINED             = internal=private

# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
# will be included in the documentation.  

EXTRACT_PRIVATE        = NO

# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
# evaluate all C-preprocessor directives found in the sources and include 
# files.

ENABLE_PREPROCESSING   = YES

# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
# names in the source code. If set to NO (the default) only conditional 
# compilation will be performed. Macro expansion can be done in a controlled 
# way by setting EXPAND_ONLY_PREDEF to YES.

MACRO_EXPANSION        = YES

# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
# then the macro expansion is limited to the macros specified with the 
# PREDEFINED and EXPAND_AS_DEFINED tags.

EXPAND_ONLY_PREDEF     = YES
于 2011-07-15T09:33:17.280 に答える
5

これは古いエントリですが、同じ問題がありました。

私にとって有効な方法は、単純に doxygen の「事前定義」機能を使用することです。'internal=private' を事前定義すると (これは '#define internal private' を実行するのと同じです)、Doxygen はすべての 'internal' プロパティを 'private' として認識し、要求されても無視します。

それは大したことではありませんが、うまくいきます。

于 2011-06-09T09:06:33.260 に答える
1

doxygenには、構成ファイルでオプションを設定することにより、ドキュメントからコードを除外するいくつかの方法があります。

メソッドがプライベートの場合は、EXTRACT_PRIVATE = NO

パターンを除外するように指定することもできます。たとえば、プライベートクラスがhiddenというディレクトリにある場合は、設定することでそのディレクトリ内のすべてのファイルを除外できます。

EXCLUDE_PATTERNS = */hidden/* 

また、を設定することで、文書化されていないコードを含めることを回避できます。

HIDE_UNDOC_CLASSES = YES

HIDE_UNDOC_MEMBERS = NO
于 2009-12-07T19:41:38.033 に答える
1

トピックに出くわしました... \internal doxygen キーワードを使用してください。そのためだけに設計されています。

于 2011-11-21T13:34:46.563 に答える