cpp中结构的未解析外部符号?

时间:2012-07-18 22:45:10

标签: c++ windows visual-studio-2010 compiler-construction linker

我知道大多数时候你得到UNRESOLVED EXTERNAL SYMBOL不包括库或没有在类中正确定义函数,但我得到相同的结构错误。 我在.h中定义的

中有一些文件.cpp和.h
extern struct MyDataStruct StructData;

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

'struct MyDataStruct StructData' unresolved external symbol

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

提前致谢。

1 个答案:

答案 0 :(得分:5)

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

struct MyDataStruct StructData;

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

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