2012-05-02 83 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以防止多重包含。

您也可以在頭文件和源文件中定義相同的類。您應該只在一次或另一次(通常是頭文件)中定義它。