전 처리기 스위치에 따라 두 가지 구현이 가능한 클래스가 있습니다. 내가 처리 한 방법은 "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
두 버전이 필요한 대부분의 클래스에서 작동합니다. 그러나 그들 중 하나에서 링커 오류가 발생합니다 (lnk2019 : 해결되지 않은 외부 기호). 저는 MS Visual Studio 2005와 2008을 사용하고 있습니다. 둘 다에 나타납니다.
.h 파일의 맨 위에는 전 처리기 옵션에 대해 테스트합니다. 또한 간단히하기 위해 .h 파일 만 참조했지만 각 디렉터리의 .cpp 파일도 적절한 디렉터리에 있습니다.
# include가 가져 오는 클래스의 구현 (적절한 * .cpp)이 컴파일되지 않기 때문에 LNK2019가 발생했을 수 있습니다. 오류 (어떤 기호, 정의 된 파일 등)에 대한 자세한 정보를 제공 할 수 있습니까? –