Rya*_*uck 2 c++ xcode duplicates
这是我的代码:
啊
class Foo
{
public:
int bar;
};
Foo myFoo;
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include "A.h"
int main()
{
myFoo.bar = 2;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Xcode给我错误(转述):
duplicate symbol _myFoo in main.o & A.o
Run Code Online (Sandbox Code Playgroud)
我想保留Foo myFoo在Ah文件中.
那么为什么XCode会抛出这个错误,我该如何纠正呢?
您在标头中定义全局变量,它会破坏一个定义规则.
包含标题的每个TU都有自己的对象副本.
您需要使用extern关键字:
啊
extern Foo myFoo;
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include "A.h"
Foo myFoo;
Run Code Online (Sandbox Code Playgroud)
XXXX.cpp
#include "A.h"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2529 次 |
| 最近记录: |