我的项目中出现了未声明的标识符错误(vs2013上的C2065),我设法在下面的示例代码中复制了该问题:
foo.h中:
#pragma once
#include "bar.h"
class Foo
{
public:
inline void doStuff() { someFunction(); }
};
Run Code Online (Sandbox Code Playgroud)
bar.h:
#pragma once
#include <map>
#include "foo.h"
extern std::map<const char*, Foo> myMap;
void someFunction();
Run Code Online (Sandbox Code Playgroud)
bar.cpp:
#include "bar.h"
std::map<const char*, Foo> myMap;
void someFunction()
{
}
Run Code Online (Sandbox Code Playgroud)
main.cpp中:
#include "foo.h"
int main()
{
Foo foo;
foo.doStuff();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在Visual Studio Express 2013上构建时,它会出现以下错误:
错误C2065:'Foo':未声明的标识符
错误C2923:'std :: map':'Foo'不是参数'_Ty'的有效模板类型参数
错误C3861:'someFunction':找不到标识符
这里有什么问题,如何解决?