无序地图LNK2001
Unordered map LNK2001
我正试图将项目放入二维无序映射中,如下所示:
#include <unordered_map>
#include <string>
#include <vector>
class Scene {
protected:
static std::unordered_map<std::string, std::unordered_map<std::string, Mesh>> Meshes;
public:
static void loadMesh(std::string filename) {
std::string meshName;
std::vector<GLfloat> v;
std::vector<GLfloat> vn;
etc..
Meshes[filename].emplace(std::make_pair(meshName, Mesh(v, vn, vt, f))); // This causes the error
}
}
我也尝试过使用这个:
Meshes[filename][meshName] = Mesh(v, vn, vt, f);
但它一直给我一个很长的错误:
Error 2 error LNK2001: unresolved external symbol "protected: static class std::unordered_map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::unordered_map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class Mesh,struct std::hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct std::equal_to<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class Mesh> > >,struct std::hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct std::equal_to<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::unordered_map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class Mesh,struct std::hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct std::equal_to<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class Mesh> > > > > > Scene::Meshes" (?Meshes@Scene@@1V?$unordered_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$unordered_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VMesh@@U?$hash@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@U?$equal_to@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VMesh@@@std@@@2@@2@U?$hash@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@U?$equal_to@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$unordered_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VMesh@@U?$hash@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@U?$equal_to@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VMesh@@@std@@@2@@2@@std@@@2@@std@@A) C:UsersGebruikerDocumentsVisual Studio 2013ProjectsC++ ProjectsEngineEngineScene.obj
我是用错了无序的地图,还是遗漏了什么?
您声明了Meshes
,但没有定义它
std::unordered_map<std::string, std::unordered_map<std::string, Mesh>> Scene::Meshes;
到一个(并且只有一个).cpp文件。
相关文章:
- 为什么不;名字在地图上是按顺序排列的吗
- 基于多个条件处理地图中的所有元素
- 在C++中将矢量转换为嵌套地图
- 替换基于地图的所有引用
- 如何区分地图中的 0 和 false?
- 地图计数确实很重要,或者只是检查是否存在
- 如何从地图中删除矢量对象
- 是否有任何C++功能可以对地图进行排序?
- 为什么我的 heap.h 文件给我一个LNK2001错误?
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- 如何使用 std::variant 打印地图键/值?
- 从矢量或地图中删除共享指针
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- 无限嵌套具有变体的地图
- C++一会儿循环读到地图上 2 行?
- 如何在cpp中使用地图显示给定日期范围内(在下面的问题中)的费率?
- 如何检查变量是否是C++中的地图?
- 如何使地图按值C++排序
- 修改地图内矢量中的值
- 无序地图LNK2001