我知道大多数时候你会因为不包含库或没有在类中正确定义函数而得到未解析的外部符号,但我得到同样的结构错误。
我在我定义的 .h 之一中有几个文件 .cpp 和 .h
extern struct MyDataStruct StructData;
我在我的 .cpp 文件中包含了这个 .h 但我得到了
'struct MyDataStruct StructData' unresolved external symbol
我从任何类中定义了这个结构,并且在没有任何类前缀的情况下访问它。
提前致谢。
最佳答案
您需要在一个和一个唯一的 .cpp 文件中实际定义它,即在目标文件中为其分配一些空间,例如
struct MyDataStruct StructData;
请注意,在这种情况下没有 extern。
而所有其他代码通过保留 extern 的 header 中的声明访问它 - 这告诉编译器和链接器可执行文件中的其他地方有一些东西可以解析引用。
关于c++ - cpp中结构的未解析外部符号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11551452/