C++ XCode:使用全局变量时出现重复符号错误
这是我的密码: A.h main.cppC++ XCode:使用全局变量时出现重复符号错误,c++,xcode,duplicates,C++,Xcode,Duplicates,这是我的密码: A.h main.cpp #include "A.h" int main() { myFoo.bar = 2; return 0; } Xcode给了我一个错误(解释): 我想将foomyfoo保存在A.h文件中 那么为什么XCode会抛出这个错误,我该如何纠正它呢 您在标题中定义全局变量,它将打破 包含标头的每个TU都有自己的对象副本 您需要使用extern关键字: 在标头中将对象声明为extern 仅定义一个源文件 在要使用全局变量的任何位置包含标题 A.
#include "A.h"
int main()
{
myFoo.bar = 2;
return 0;
}
Xcode给了我一个错误(解释):
我想将foomyfoo
保存在A.h文件中
那么为什么XCode会抛出这个错误,我该如何纠正它呢 您在标题中定义全局变量,它将打破
包含标头的每个TU都有自己的对象副本 您需要使用
extern
关键字:
A.h
extern Foo myFoo;
#include "A.h"
Foo myFoo;
main.cpp
extern Foo myFoo;
#include "A.h"
Foo myFoo;
XXXX.cpp
#include "A.h"
foomyfoo代码>是定义,而不是声明。使用externfoo-myFoo代码>用于声明,并将定义移动到单个实现文件中。确保将无公共块设置为无内置设置。对于下一个问题,请显示复制所需的所有代码。A.o.来自哪里?这是我们唯一的提示,你有第二个翻译单元,这在这里是至关重要的。