文件a.cc
int a = 0;
文件b.cc
#include "a.cc"
文件main.cc
#include "b.cc"
extern int a;
int main() {
}
g++ -c a.cc
g++ -c b.cc
g++ main.cc a.o b.o
error: multiple definitions of a
我在这里做错了什么?
最佳答案
您包含了 .cc
(或 .cpp
)文件,这是错误的。不要那样做。您需要一个 header ,并在其中放入 extern int a;
:
// a.h
// include guards omitted
extern int a;
// a.cc
#include "a.h"
int a;
// b.cc
#include "a.h"
// main.cc
#include "a.h"
int main(){
// use a
}
关于c++ - 使用 extern 全局变量的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6575791/