은 여기 나에게 힌트를 제시하십시오 :이 두 번을 포함하고 받고 있어요"이미 정의 된"이유는 무엇입니까?
class UIClass
{
public:
UIClass::UIClass();
};
#ifndef __PLATFORM__
#define __PLATFORM__
UIClass Platform;
#else
extern UIClass Platform;
#endif
:
LNK2005 - 플랫폼이 이미 .OBJ (MSVS13)에서 정의합니다.
짐작 하겠지만 아이디어는 플랫폼을 한 번만 정의하는 것이 었습니다. #ifndef
또는 #define
이 실패하는 이유는 무엇입니까? 이 문제를 어떻게 해결해야합니까?
여러 객체 파일에 정의되어야합니다. 식별자 '__PLATFORM__'은 구현 (컴파일러, 라이브러리 등)에서 사용하기 위해 예약되어 있습니다. 자세한 내용은 http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier를 참조하십시오. –