最近在一个MFC工程文件中调用了多个dll和lib文件,包括matlab和can连接文件,时常出现“无法解析的外部符号”的错误,特此记录解决方法。

 

通常出现这个问题的原因有以下几个:

1.没有导入相应的lib库文件。

2.类成员声明了,但是却没有定义。也可能是定义的与声明的不一致。

3.没有包含响应的头文件和源文件。

4.没有在项目属性页的链接器的命令行选项加入相应的类包。

5.没有在c++包含目录和库目录加入相应的类包路径。

6.dll的版本与平台不兼容,64位和32位的差别。

 

通常对于第三方的SDK一般只提供给我们DLL,并提供相应的头文件及LIB文件;这里的LIB文件是链接时需要的,它包含了DLL中函数的想关信息,不是静态编译产生的静态库,因此我们只需要在项目添加对这些LIB的依赖。

一般情况下按照项目--》属性--》配置属性--》链接器-》输入--》附加依赖项

的方式在其中加入所需库文件,注意把库文件写进去,每个库文件后加分号,同时在

“链接器--》常规--》附加库目录”中填入相应库所在目录。

为了保险可以在

VC++目录--》常规--》包含目录和VC++目录--》常规--》库目录中中填入相应库所在目录。

然后在工程文件中加入头文件#include "ControlCAN.h"

以及

#pragma comment(lib,"ControlCAN.lib")

如果完成这些操作之后还是存在无法解析的外部符号的问题,应该是版本与平台不兼容。将当前平台(win32/x64)替换成(x64/win32)再进行编译,一般就可以通过了。

需要再新的平台重新设置上述操作,并将目标计算机改为当前平台。

最新文章

  1. C++类的静态成员详解
  2. js串讲整理
  3. hdoj 1385Minimum Transport Cost
  4. ACE - ACE_Task源码剖析及线程池实现
  5. 2016-08-16: copy-and-swap
  6. HTML5 离线缓存忽略主页实例
  7. AT&T汇编
  8. css 水平居中的办法
  9. 《经久不衰的Spring框架:SpringMVC 统括》
  10. js验证15位或18位身份证
  11. js学习笔记<拷贝传值,引用传址和匿名函数>
  12. Fu+ 后台管理 (Thinkphp)
  13. 程序员如何避免996、icu?欢迎来讨论一下。
  14. 时间规划在Optaplanner上的实现
  15. 第四十一天 socker server和 event
  16. iptables 扩展匹配 第三章
  17. python-day75--django项目问题详细
  18. Alpha冲刺第4天
  19. JAVA Double去掉科学计数"E"
  20. PHP -- 模拟测试上传文件

热门文章

  1. 腾讯云静态资源放到cos存储桶里,并开启CDN自定义域名加速
  2. FreeRdp(一):主要数据结构
  3. npm install报错C:\Users\Guyang\AppData\Roaming\npm-cache\_logs\xxx-14T01_06_33_159Z-debug-0.log
  4. ElasticSearch (Es) 分组查询 记录
  5. mybatis-plus 时间查询
  6. (0720) 【 表示 n'b0; 】
  7. sap软件功能介绍及主要功能(模块)有哪些?
  8. [vsCode]Visual Studio Code环境变量不同步
  9. ORCAD中,怎么一次性去掉所有元器件下面的下划线呢
  10. [转]B树与B+树----mysql的索引结构