VC++项目过程当中常常遇到没法解析的外部符号 link error 2019 这样的错误;很恼人~~~~~html
出现这种状况通常是因为头文件中声明了函数或者类型;可是没有相关的实现源文件;一般状况是咱们引入了第三方SDK的头文件,并在程序中使用(引用)了头文件中的函数或者类型;链接器却没法连接;windows
缘由及解决方案:函数
第一种可能:第三方SDK通常以DLL文件的形式提供给咱们,并提供相应的头文件及LIB文件;LIB文件是连接时须要的,它包含了DLL中函数的想关信息,所以咱们只须要在项目添加对这些LIB的依赖既可;this
在VS2008中点击项目-》右键-》属性-》配置属性-》连接器-》输入-》附加依赖项:将相关的lib文件加入到附加依赖项中;spa
第二种可能:咱们调用的函数或者类型并未实现;此时咱们只要本身创建对应的源文件,并实现这些函数便可;htm
实例:error LNK2019: unresolved external symbol "public: __thiscall Thread_updateCurrentDateTime::Thread_updateCurrentDateTime(void)"......referenced in function ......blog
缘由:在类前面定义了类Thread_updateCurrentDateTime,但没有实现构造函数Thread_updateCurrentDateTime(void)qt
参考:http://blog.sina.com.cn/s/blog_4b0020f301012750.htmlio
第三种可能:外部引用的基础库与当前所使用的基础库冲突(即同一基础库但版本不一样);此时咱们须要从新编译外部引用或者换掉基础库使用与外部引用相同版本的基础库;编译
注意:qt-opensource-windows-x86-vs2010-4.8.7.exe与qt-opensource-windows-x86-vs2008-4.8.7.exe虽然均为4.8.7版本,但仍然不能一块儿使用,即非彻底相同的版本;