3

我知道大多数时候你会因为不包括库或在类中没有正确定义函数而得到 UNRESOLVED EXTERNAL SYMBOL,但我在结构上得到同样的错误。我在其中一个 .hi 中定义了几个文件 .cpp 和 .h

extern struct MyDataStruct StructData;

我将这个 .h 包含在我的 .cpp 文件中,但我得到了

'struct MyDataStruct StructData' unresolved external symbol

我从任何类中定义了这个结构,并且我在没有任何类前缀的情况下访问它。

提前致谢。

4

1 回答 1

5

您实际上需要在一个唯一的 .cpp 文件中定义它,即在目标文件中为其分配一些空间,例如

struct MyDataStruct StructData;

注意在这种情况下没有外部。

虽然所有其他代码都通过保留 extern 的标头中的声明来访问它 - 这告诉编译器和链接器可执行文件中的其他地方有一些东西可以解析引用。

于 2012-07-18T22:57:18.940 回答