今天在帮Norains 兄实验map的时候遇到一个问题
在VS2005的环境下调试STL的map类,出现了以下的问题
1>maptest.obj : error LNK2019: 无法解析的外部符号 "public: __cdecl std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAA@XZ),该符号在函数 "protected: static struct std::_Tree ,struct std::map ,class std::allocator >::_Kfn,struct std::less ,class std::allocator >::_Node * __cdecl std::_Tree ,struct std::map ,class std::allocator >::_Kfn,struct std::less ,class std::allocator >::_Max(struct std::_Tree ,struct std::map ,class std::allocator >::_Kfn,struct std::less ,class std::allocator >::_Node *)" (?_Max@?$_Tree@KU?$pair@$$CBKK@std@@U_Kfn@?$map@KKU?$less@K@std@@V?$allocator@K@2@@2@U?$less@K@2@V?$allocator@K@2@@std@@KAPAU_Node@12@PAU312@@Z) 中被引用
1>maptest.obj : error LNK2019: 无法解析的外部符号 "public: __cdecl std::_Lockit::_Lockit(void)" (??0_Lockit@std@@QAA@XZ),该符号在函数 "protected: static struct std::_Tree ,struct std::map ,class std::allocator >::_Kfn,struct std::less ,class std::allocator >::_Node * __cdecl std::_Tree ,struct std::map ,class std::allocator >::_Kfn,struct std::less ,class std::allocator >::_Max(struct std::_Tree ,struct std::map ,class std::allocator >::_Kfn,struct std::less ,class std::allocator >::_Node *)" (?_Max@?$_Tree@KU?$pair@$$CBKK@std@@U_Kfn@?$map@KKU?$less@K@std@@V?$allocator@K@2@@2@U?$less@K@2@V?$allocator@K@2@@std@@KAPAU_Node@12@PAU312@@Z) 中被引用
一开始研究了好一会,以为是库少了,后来看到一个帖子CSDN上的
是wince区的一个老帖子,很多大牛都没有解决这个问题,最后LZ说是lockit的问题
解决办法是在程序中定义一下lockit函数,具体如下:
::_Lockit::_Lockit(){}; ::_Lockit::~_Lockit(){};
就build通过了。。目前还没想清楚是什么原理。。。。记录下来供遇到此问题的朋友分享