3

非表示にすることは可能ですか

#include <header.h>  //from library B

ライブラリAを使用するプロジェクトから?

そうしないとライブラリAがコンパイルされないため、そこにインクルードを保持する必要がありますが、そのヘッダーはメインプロジェクトに表示されるべきではない他のライブラリBからのものであるため、メインプログラムはそのheader.hを見つけようとし、コンパイルは失敗します.

4

1 に答える 1

1

ライブラリ A をコンパイルする場合にのみ、シンボルを の中に入れて#ifdef定義することができます。

#ifdef INCLUDE_FROM_LIBRARY_B
#include <header.h>  //from library B
#endif //INCLUDE_FROM_LIBRARY_B

更新:しかし、おそらく最良のオプションは、上記の@Robinsonの提案です。ヘッダーファイルには含めず、必要な場合にのみ.cppファイルに含めてください。

于 2012-05-08T11:42:45.150 に答える