プリプロセッサスイッチに応じて、2つの実装が可能なクラスがあります。私がこれを処理した方法は、 "src \ CompSwitch1 \ class.h"と "src \ CompSwitch2 \ class.h"を作成することです。私の標準インクルードファイルでは、私は使用しますプリプロセッサスイッチでクラスのバージョンを確認する
#ifdef CompSwitch1
#include "CompSwitch1\class.h"
#elif CompSwitch2
#include "CompSwitch2\class.h"
#else
#error "Specify CompSwitch1 or CompSwitch2"
#endif
これは、2つのバージョンが必要な私のクラスのほとんどで動作します。しかし、そのうちの1つでは、リンカエラー(lnk2019:未解決の外部シンボル)が発生します。私はMS Visual Studio 2005と2008を使用しています。両方とも表示されています。
.hファイルの先頭に、私はプリプロセッサオプションに対してテストします。 また、簡潔さのために.hファイルのみを参照していましたが、適切なディレクトリにこれらの.cppファイルもあります。
#includeが取り込んでいるクラスの実装(適切な* .cpp)がコンパイルされていないため、おそらくLNK2019が発生しています。エラーの詳細(どのシンボル、どのファイルが定義されているかなど)を教えてください。 –