c ++ extern unresolved symbol error LNK2001

时间:2014-08-09 21:43:33

标签: c++ extern unresolved-external

我有这样的事情:

--includes.h
extern int count;

--main.cpp
#include "includes.h"
int count = 4;

--other.cpp
#include "includes.h"
cout<<count; // will output 4

但是当我这样做时,编译器会出错,并显示以下消息:

error LNK2001: unresolved external symbol "int count" (?count@@3HA)

知道我为什么会这样做吗?

跨不同文件共享变量的最佳方法是什么? 如何在一个文件中定义使用变量,并在另一个文件中修改该变量?

3 个答案:

答案 0 :(得分:0)

的main.cpp

#include <iostream>
int y; 
int testy();
int _tmain(int argc, _TCHAR* argv[])
{

     std::cout << y;
     std::cout<<testy();
     std::cout << y;
    return 0;
}

source.cpp

extern int y;

int testy(){return y++;}

这有助于了解您的问题......

答案 1 :(得分:-1)

您可以尝试输入未命名的命名空间

namespace{
    extern int count = -1;
};

CPP:

std::cout << count;

答案 2 :(得分:-2)

你应该在一个标题中定义一个extern int,在一个文件中定义一个int,但是这个文件应该没有任何对标题的引用