我有一個文件SpreadSheetCell.h和SpreadSheetCell.cpp頭文件。
我還有一個文件SpreadSheet.cpp包括SpreadSheetCell.h。在這種情況下,它給我的錯誤,如「未定義的參考SpreadSheetCell:SpreadSheetCell()」等
但是,當我嘗試包括SpreadSheetCell.cpp而不是錯誤不見了。它是不常見的,包括頭文件,而不是cpp文件?我可能會做錯什麼?包括.cpp文件
Q
包括.cpp文件
2
A
回答
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」,如果沒有顯示你的代碼和你的編譯命令!
相關問題
- 1. 基類包括.cpp文件頭文件
- 2. 製作和C++文件, 「包括」 在CPP
- 3. Android.mk,包括所有的cpp文件
- 4. 頭,不cpp文件,幷包括訂購
- 5. OpenGLES頭文件包括Availability.h防止CPP文件編譯
- 6. Cpp文件包括雖然也能夠在其中調試
- 7. C++繼承 - 覆蓋函數,包括使用「::」s,.h文件和.cpp文件
- 8. GNU編譯使所有的.cpp文件.O和包括.h文件
- 9. 的Android NDK:不拾取CPP包括
- 10. 包括沒有Boost的yaml-cpp可用 -
- 11. CPP包括數以千計的錯誤
- 12. 包含在頭文件與前瞻性聲明,包括在的.cpp
- 13. 包括包含的文件
- 14. php包括文件
- 15. PHP文件包括
- 16. 包括RNW文件
- 17. 包括JAR文件
- 18. 包括json_encode文件()
- 19. 包括zip文件
- 20. 笨包括文件
- 21. 包括JavaScript文件
- 22. 包括頭文件
- 23. 包括javascript文件
- 24. PHP包括文件
- 25. 包括.h文件
- 26. PHP包括文件
- 27. Ruby包括文件
- 28. PHP「包括」文件
- 29. 要包括從不同的文件,包括文件
- 30. PHP的包括文件還包括該文件的風格
或者你能做什麼,這是所有的觀點,因爲沒有源盧克。 – user505160 2012-02-08 01:34:18
你在做什麼錯誤是要求沒有給予足夠的細節問題。 – 2012-02-08 01:37:12