今天,因为项目的需要,用到了tinyxml的静态库。tinyxml大家都比较熟悉了,编译库的过程也很简单,这里就不详细的赘述了。我按照常规的方法编译成功了相应的x64库之后,将库链接到程序中运行却出现了错误,错误信息如下:
1>xml_settings.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl TiXmlDocument::TiXmlDocument(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0TiXmlDocument@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
虽然说理论上fatal error LINK2001的出错原因有很多,但熟练的程序员因为一般不会轻易犯低级错误,所以极大的概率应该是库出问题了。我仔细阅读了一下错误信息,注意到了“public: __cdecl TiXmlDocument::TiXmlDocument(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)”,很显然,错误在于TiXmlDocument的一个构造函数未定义,我很奇怪,我编译的库是绝对没有问题的