私は適切なキーワードを見つけることができなかったかもしれないので、私はgoogleで疑問を明確にすることができませんでした。親プロジェクトでプリプロセッサ定義を再定義する必要はありますか?
私は2つのC++プロジェクトを持っているとしましょう。 projAおよびprojB。私は、プロジェクトの設定としてMYVAR
を定義し、projA.a静的ライブラリを生成するprojAをコンパイル
class myClass
{
...
#ifdef MYVAR
virtual ~myClass() {}
#endif
}
:projAでexmpl.hファイルで は、この条件があります。
今、projBからprojAのexmpl.h
を使用する必要があります。単にそれを組み込み、projA.a静的ライブラリを使用してprojBをコンパイルします。
しかし、私がしたことは、は、MYVAR
を定義していません。
この場合、どうなりますか? projBは
#ifdef
のコードをスキップしますが、#ifdef
のコードでコンパイルされた静的ライブラリを使用していますか?このエラーは予期しない動作ですか?
サブプロジェクトやそれを使用するすべてのプロジェクトで使用されたすべてのプリプロセッサ定義を定義する必要はありますか?
ありがとう。
Oh my。ただしないでください。重大なXY問題のように見えます。 –
1つにつき1つ質問してください。 –