gpt4 book ai didi

c++ - 获取链接错误 : Extern in C++. 如何访问在文件 A.CPP 中修改的变量的值在另一个文件文件 B.CPP 中

转载 作者:太空宇宙 更新时间:2023-11-04 12:09:47 24 4
gpt4 key购买 nike

在我的 C++ 代码中,我想在文件“B”中使用变量“VarX”,该变量实际上在另一个文件“A”中被修改。所以我看了一下@以下链接并使用了外部概念。

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

error LNK2005: "unsigned int VarX" (?VarX@@3IA) already defined in ***.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 定义之外,还有许多其他结构定义和许多其他定义。

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

最佳答案

问题不是可访问性,而是多重定义。错误消息非常清楚,在您正在重新定义 VarX 的代码中的某处。

常见原因可能是:

  • 无效构建 - 编译前是否清理了构建?
  • 你有多个 unsigned int VarX = 101; 或一个 unsigned int VarX; 某处(在头文件或实现文件中),没有 extern声明。
  • 你在代码的某处#include "File2.cpp",导致它被多次编译。

我打赌第二种可能性。

关于c++ - 获取链接错误 : Extern in C++. 如何访问在文件 A.CPP 中修改的变量的值在另一个文件文件 B.CPP 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10298041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com