2012-02-08 177 views
2

我有一個文件SpreadSheetCell.h和SpreadSheetCell.cpp頭文件。
我還有一個文件SpreadSheet.cpp包括SpreadSheetCell.h。在這種情況下,它給我的錯誤,如「未定義的參考SpreadSheetCell:SpreadSheetCell()」等
但是,當我嘗試包括SpreadSheetCell.cpp而不是錯誤不見了。它是不常見的,包括頭文件,而不是cpp文件?我可能會做錯什麼?包括.cpp文件

+2

或者你能做什麼,這是所有的觀點,因爲沒有源盧克。 – user505160 2012-02-08 01:34:18

+1

你在做什麼錯誤是要求沒有給予足夠的細節問題。 – 2012-02-08 01:37:12

回答

3

這是一個鏈接錯誤,這意味着您在編譯時沒有包含定義爲SpreadSheetCell:SpreadSheetCell()的源文件。

您可能在使用的命令行中缺少SpreadSheetCell.cpp,例如,像這樣:

g++ -o myBinary SpreadSheet.cpp SpreadSheetCell.cpp [...more files?] 
+0

噢..是的,我忘了,包括SpreadSheetCell.cpp而編制。謝謝 – 2012-02-08 02:23:44

1

這是不是一個好主意,包括源代碼。始終只包含頭文件。

我看不到你的文件,但是,我認爲SPreadSheetCell.h包含一個文件(SpreadSheet.h也許?),以便存在循環依賴。

,最好的辦法就是讓所包含的文件的圖形(在CPP和H文件)。如果有某個地方出現了「圈子」,你就會發現問題。在這種情況下,你應該刪除一個鏈接,所以圓損壞或分割文件了在更小的文件(也移除的社交圈)。

(與 '圓圈' 我的意思是,例如一個文件包括B包括C A再次包括。)

0

確保您SpreadSheetCell.cpp有的#include 「SpreadSheetCell.h」,如果沒有顯示你的代碼和你的編譯命令!