视觉获取链接错误:C++中的外部.如何访问在文件 A 中修改的变量的值.CPP在另一个文件 B .CPP中修改
visual 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概念。
如何使用 extern 在源文件之间共享变量?
错误 LNK2005:"无符号 int VarX"(?VarX@@3IA) 已在 中定义 .obj.
我的方案如下:
File1.h
extern unsigned int VarX;
File2.cpp
#include File1.h
unsigned int VarX = 101;
File3.cpp
#include File1.h
unsigned int temp = VarX;
IMP 注意:在头文件 File1.h 中,除了 Extern 定义之外,还有许多其他结构定义和许多其他定义。
有人可以帮助我吗?我应该如何读取在文件2中修改的VarX的值.cpp在另一个文件文件3.cpp中。
问题不在于可访问性,而在于多重定义。错误消息非常清楚,在代码中的某个地方,您正在重新定义VarX
。
常见原因可能是:
- 无效的构建 - 在编译之前是否清理了构建?
- 您有多个
unsigned int VarX = 101;
或某处(在标头或实现文件中)的unsigned int VarX;
,没有extern
声明。 - 您在代码中的某处
#include "File2.cpp"
,导致它被多次编译。
我赌的是第二种可能性。
相关文章:
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 已修改的LinkedList未在文本文件本身中更新
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 什么文件可以修改 atom 的C++语法?
- 修改生成文件以简化框架 #include 路径
- Windows std::fstream 修改文件后打开()?
- Chilkat SFTP 文件修改时间不与上传更新
- 如何在 Windows 上的 C++ 中根据文件的修改时间读取目录中的文件
- 如何使用Winforms C#或C++.Net在不更改文件中其他内容的情况下修改jpg文件中的Orientation e
- 如何修改Lambda表达式以将输出放入文本文件
- 修改 XML 文件 QXMLStreamReader/Writer
- 如何从 avi 文件中抓取所有帧 - 如何修改 MS 样本采集卡样本
- accept(..) 似乎正在修改我给它的文件描述符参数
- 将头文件和相关修改添加到生成文件
- 在没有root权限的情况下安装NTL,并在生成文件中修改其构建路径
- 如何使用c 在Windows中使用更改日记帐查找文件修改
- 使用生成文件修改项目组织
- 以非管理员身份在 Windows 上的 C 中检查上次文件修改时间
- 在C++中设置文件修改时间的可移植方法
- 使用stat api获取不正确的文件修改时间