2015-01-02 88 views
-5

我正在一個unresolved external symbol "public: __thiscall TestLanguage::TestLanguage(void)" ([email protected]@[email protected]) referenced in function _main未解決的參考構造函數定義

的​​構造函數,只要我能看見定義,但顯然編譯器無法看到它。我唯一的結論是存在某種包含問題(例如通告包含)。

我已經爲下面的每個翻譯單元製作了包含圖,但是我看不到任何問題。任何指導將不勝感激。

包括:

Test.cpp 
    Expression.h 
     Operation.h 
     Token.h 
    CPU.h 
     Operation.h 
    TestLanguage.h 
     ILanguage.h 
     TLOperators.h 
      IOperator.h 
       Operation.h 
       Token.h 

TestLanguage.cpp 
    TestLanguage.h 
     ILanguage.h 
     TLOperators.h 
      IOperator.h 
       Operation.h 
       Token.h 

TLOperators.cpp 
    TLOperators.h 
     IOperator.h 
      Operation.h 
      Token.h 
    Expression.h 
     Operation.h 
     Token.h 
    CPU.h 
     Operation.h 

CPU.cpp 
    CPU.h 
     Operation.h 
    Operation.h 

Expression.cpp 
    Expression.h 
     Operation.h 
     Token.h 
    Util.h 
    IOperator.h 
     Operation.h 
     Token.h 
    CPU.h 
     Operation.h 
    ILanguage.h 

Operation.cpp 
    Operation.h 

Token.cpp 
    Token.h 
+3

你有MCVE嗎? http://stackoverflow.com/help/mcve – inetknght

+1

@inetknght我會盡力得到一個。 – developerbmw

+5

我還沒有downvoted(但:)),但這是一個合理的問題呢?你沒有給我們*任何有用的信息。他們包含的一個巨大的源文件樹和頭文件樹是沒有用的,因爲1.我們無法知道它是否正確2.沒有任何信息表明您是否提供了有關構造函數的定義。 – Praetorian

回答

0

試圖創建一個MCVE通過@inetknght的建議後(感謝BTW),我發現它實際上是在Visual Studio Express的2013年中的錯誤我在我的所有源文件複製到一個新的項目,所以我可以繼續刪除東西來獲得最小的例子,但是它在新項目中編譯得很好。

當試圖修復原始項目時,我清理了解決方案,手動刪除了目標文件,刪除了項目中的.sdf文件。沒有任何工作。然後,我嘗試從項目中移除TestLanguage.cpp文件並將其添加回來 - 並且工作正常。

希望這可以幫助其他任何遇到此問題的人。

+1

從構建中排除了有問題的源文件的聲音。 –

+1

聽起來就像你在你的手下有一個小小的一致的回放。如何在連接中報告並讓MS進行調查?直到你做,你不能確定它確實是一個VS錯誤。 –