0

コード自体や外部ヘッダーの定義ではなく、コンパイラからの定義に基づいて条件付きコンパイルを行うコードがたくさんあります。たとえば、次のようなことがよくあります。

#if defined _MSC_VER || defined __ICL
// A lot of freakin code
#elif defined __GNUC__  || defined __ICC
// A bunch more here
#else
#error "Unsupported environment"
#endif

プラットフォーム/コンパイラ固有のセクション内のすべてのコードのドキュメントを生成する必要がありますが、ドキュメントによると、INCLUDE_GRAPH と INCLUDED_GRAPH が機能するには YES でなければならないため、単純に ENABLE_PREPROCESSING を NO に設定することはできません。

それで、どうすればいいですか?

4

1 に答える 1

1

DOXYGEN最初に、doxygen 構成の「定義済み」セクションでマクロなどを定義する必要があります。次に、それら#elifを別々に分割し、 #if1 つの有効な構成を見つけたという事実を追跡する必要があります。

#if defined _MSC_VER || defined __ICL || defined DOXYGEN
#define WE_FOUND_SOME
// A lot of freakin code
#endif
#if defined __GNUC__  || defined __ICC || defined DOXYGEN
#define WE_FOUND_SOME
// A bunch more here
#endif
#ifndef WE_FOUND_SOME
# error "Unsupported environment"
#endif

しかし、これらの異なる部分が同じ関数やマクロを定義している場合、その doxygen は簡単に失われてしまうことに注意してください。

于 2012-11-16T09:34:42.383 に答える