我用的是Vs2015 我在主程序cpp文件中如果使用extern 关键词引用另外一个文件中定义的一个变量, vs报错。但是如果在另一个文件中使用extern引用主程序cpp中定义的一个变量却是可以的。代码如下:
// file1.cpp
#include isotream
int a=0; // 定义变量
...
// file2.cpp
#include iostream
extern int a; // 引用file1.cpp中的变量
int main()
{
std::cout<<a<<std::endl; // 报错unresolved external symbol "int a"
// (?a@@3HA)
}
这种情况编译器不会报错:
// file1.cpp
#include iostream
extern int a;
//file2.cpp
#include iostream
int a=0;
int main()
{
}
file1.cpp是不是没有加到工程中啊,我按你的方法试了一下是可以的,把文件从工程中移除就出现了你的问题