error LNK2019: 无法解析的外部符号

VC++项目过程中经常遇到无法解析的外部符号 link error 2019 这样的错误;很恼人~~~~~

 

出现这种情况一般是由于头文件中声明了函数或者类型;但是没有相关的实现源文件;通常情况是我们引入了第三方SDK的头文件,并在程序中使用(引用)了头文件中的函数或者类型;连接器却无法链接;

 

原因及解决方案:

第一种可能:第三方SDK一般以DLL文件的形式提供给我们,并提供相应的头文件及LIB文件;LIB文件是链接时需要的,它包含了DLL中函数的想关信息,因此我们只需要在项目添加对这些LIB的依赖既可;

在VS2008中点击项目-》右键-》属性-》配置属性-》链接器-》输入-》附加依赖项:将相关的lib文件加入到附加依赖项中;

 

第二种可能:我们调用的函数或者类型并未实现;此时我们只要自己建立对应的源文件,并实现这些函数即可;

 

实例:error LNK2019: unresolved external symbol "public: __thiscall Thread_updateCurrentDateTime::Thread_updateCurrentDateTime(void)"......referenced in function ......

原因:在类前面定义了类Thread_updateCurrentDateTime,但没有实现构造函数Thread_updateCurrentDateTime(void)

 

参考:http://blog.sina.com.cn/s/blog_4b0020f301012750.html

 

第三种可能:外部引用的基础库与当前所使用的基础库冲突(即同一基础库但版本不同);此时我们需要重新编译外部引用或者换掉基础库使用与外部引用相同版本的基础库;

注意:qt-opensource-windows-x86-vs2010-4.8.7.exe与qt-opensource-windows-x86-vs2008-4.8.7.exe虽然均为4.8.7版本,但仍然不能一起使用,即非完全相同的版本;

150110_dbH2_2650669.png

转载于:https://my.oschina.net/qtplus/blog/718284

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值