提问人:Rudy01 提问时间:8/10/2014 更新时间:8/10/2014 访问量:955
C++ extern 无法解析的符号错误LNK2001
c++ extern unresolved symbol error LNK2001
问:
我有这样的东西:
--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)
知道我为什么会得到这个吗?
在不同文件之间共享变量的最佳方式是什么? 如何在一个文件中定义使用变量,并在另一个文件中修改相同的变量?
答:
-2赞
Adrián Arroyo Calle
8/10/2014
#1
您应该在标头中定义一个 extern int,并在一个文件中定义一个 int,但此文件不应引用标头
评论
0赞
WhozCraig
8/10/2014
在定义 .cpp 文件中包含声明标头不是问题,即使使用 decl。extern
-1赞
Quest
8/10/2014
#2
您可以尝试放入未命名的命名空间
namespace{
extern int count = -1;
};
CPP:
std::cout << count;
评论
0赞
Rudy01
8/10/2014
我只是厌倦了它,但我收到类似的错误说:未解析的外部符号“intanonymous namepsace::count
0赞
Samer
8/10/2014
#3
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;
}
来源:.cpp
extern int y;
int testy(){return y++;}
这应该有助于了解您的问题......
上一个:未解决的 Extern
下一个:未解析的符号错误
评论