2012-05-02 2 views
-1

두 개의 테스트 파일이 있습니다. 하나는 이전 파일이고 하나는 새로운 파일입니다. 새 파일을 테스트 할 때 다음 메시지가 나타납니다.로거 오류의 다중 정의

build/Debug/MinGW_1-Windows/_ext/86258799/loggerthread_nomain.o: In function `log': 
c:/repos/trunk/logging/impl/../include/Logger.h:71: multiple definition of `logger' 
build/Debug/MinGW_1-Windows/tests/tests/loggingsimpletest.o:C:\repos\trunk\logging/tests/../include/Logger.h:71 
: first defined here 

collect2: ld returned 1 exit status 
make[1]: *** [build/Debug/MinGW_1-Windows/tests/TestFiles/f1] Error 1 
make: *** [.build-tests-impl] Error 2 

이 오류는 무엇을 의미하며 어떻게 수정합니까?

+0

코드를 컴파일 할 때 사용하는 명령과'logger'의 정의를 보여주십시오. –

+0

명령이 테스트 파일을 마우스 오른쪽 버튼으로 클릭하고 테스트를 클릭 한 것으로 간주되는 한 로거 정의는 로거 클래스에 있습니다. –

+1

거기에 여러 개의 정의가 있습니다. 헤더가 여러 개 포함되어있을 수 있습니다. 어떤 소스 파일이 오류를 일으키는 지 확인한 다음 해당 소스 파일의 관련 부분을 표시해야합니다. 우리는 그 정보 없이는 도울 수 없습니다. 모든 파일을 게시하지 마십시오. 시행 착오를 통해 실제로 어떤 파일이 오류를 일으키는 지 확인할 수 있습니다. –

답변

0

다중 포함을 방지하려면 Logger.h 헤더 파일에 include guards을 사용해야합니다.

헤더와 소스 파일 모두에서 동일한 클래스를 정의 할 수도 있습니다. 한 번에 또는 한 번에 정의해야합니다 (일반적으로 헤더 파일).