C ++中的外部:对于外部VarX变量::错误LNK2001:未解析的外部符号“unsigned int VarX”(?VarX @@ 3IA)

时间:2012-04-24 13:50:24

标签: c++ visual-c++ linker linker-errors extern

作为我在stackoverflow中的上一个问题的延续: Getting LINK error : Extern in C++. How to access the value of a variable which is modified in File A.CPP in another file File B.CPP 在我的C ++代码中,我想在文件“B”中使用变量“VarX”,该文件实际上在另一个文件“A”中被修改。 所以我看看@以下链接&使用了extern概念。

How do I use extern to share variables between source files?

  

错误LNK2001:未解析的外部符号“unsigned int   VarX“(?VarX @@ 3IA)

我的方案如下:

File1.h
extern unsigned int VarX;

File2.cpp
#include File1.h
VarX = 101;

File3.cpp
#include File1.h
unsigned int temp = VarX;

IMP注意:在头文件File1.h中,除了Extern定义之外,还有许多其他结构定义以及许多其他定义。

有人可以帮助我。我如何读取另一个File File3.cpp中File2.cpp中修改的VarX的值。

2 个答案:

答案 0 :(得分:2)

你应该有File1.cpp 以下内容:

unsigned int VarX = 0;

答案 1 :(得分:2)

你必须在全局范围内定义VarX,我假设你现在没做,因为否则它甚至不会编译:

//File2.cpp
#include "File1.h"
unsigned int VarX = 101;  //this has to be outside any code block or namespace
                          //or class...