好吧,所以我一直在搜索這個在過去4個小時裏這個「多重定義第一次定義的問題」的每個論壇,我想我一定很愚蠢,但我可以似乎無法解決這個問題。只是另一個「多個定義第一次定義在這裏」的錯誤
我有以下文件:
main.cpp中僅包括Server.h,其聲明的一些功能,然後將其在Server.cpp定義。
Server.cpp使用來自Socket.cpp,FileHandlerOut.cpp和Packet.h的函數,所以頭文件Socket.h,Packet.h和FileHandlerIn.h包含在Server.h中。其他頭文件都不包含標準庫以外的任何其他頭文件。
會發生什麼情況是Server.cpp中的每個函數和Packet.h中的每個函數都會發生多重定義錯誤。我在Packet.h中有函數的原因是我有一個定義的結構,並且Packet.h函數都在結構上運行。我真的很困惑我應該如何正確定義這些函數,所以我可以在其他cpp文件中使用它們,這可能是我的問題的一部分?
你的標題中是否包含警衛? – fritzone
如果你有頭文件中定義的函數,它們不是struct/class的成員函數,你需要'inline'。 –
將您的代碼減少到完整的最小示例,並且仍然會重現問題,然後將其發佈到此處。 – Angew