好的,所以在过去的 4 个小时里,我一直在搜索每个论坛关于“这里首先定义的多重定义”的问题,我想我一定很愚蠢,但我似乎无法解决这个问题。
我有以下文件:
main.cpp
Socket.h
Socket.cpp
Server.h
Server.cpp
Packet.h
FileHandlerIn.h
FileHandlerOut.cpp
main.cpp 仅包含 Server.h,其中声明了一些函数,然后在 Server.cpp 中定义这些函数。
Server.cpp 使用了 Socket.cpp、FileHandlerOut.cpp 和 Packet.h 中的函数,因此在 Server.h 中包含了头文件 Socket.h、Packet.h 和 FileHandlerIn.h。除标准库外,其他头文件均不包含任何其他内容。
发生的情况是 Server.cpp 中的每个函数和 Packet.h 中的每个函数都会出现多重定义错误。我在 Packet.h 中有函数的原因是我定义了一个结构,并且 Packet.h 函数都在该结构上运行。我真的很困惑我应该如何正确定义这些函数,所以我可以在其他 cpp 文件中使用它们,这可能是我问题的一部分?