昨天拿到个qt工程, 在当前环境编译不过。dll库函数全报undefined reference。
分析:因为时链接阶段报错, 首先怀疑没链接lib。
找到,pro文件。看是否链接.lib。如下:

LIBS += -L$$PWD/lib -lwebsockets

执行编译, 从编译输出发现由链接lib。

分析:由此排除工程做链接动作。 重新怀疑lib库符号表有问题。
查看lib库符号表。借助vs 自带工具dumpbin.exe
打开vs命令行提示符。

进入lib文件所在目录。

dumpbin /EXPORTS websockets.dll > 2.txt

ps: 如果lib较大, 输出会很多, 所以重定向到文件方便查找。如果Linux环境, 可以用objdump。

分析:通过解析符号表 发现lib中有所需符号。不是lib库问题。 问题陷入瓶颈。百度偶然发现库位数和编译环境不配套会导致链接失败。
还是通过dumpbin查看库位数

此处只是示例, 可以看到这个库是X86,32位 环境。
对照qt编译环境

qt编译套件使用的是64位。 定位到问题原因。
解决:
在项目替换编译套件。应为没安vs2017。所以这里没发选择其他套件。重装qt。

在这里勾上msvc 32位。安装对应版本vs。 将对应dll文件放在可执行文件同目录下,问题解决。

第二天有碰到了debug版本运行正常, release版本运行异常退出问题。
找到release版本可执行文件,双击运行,windows提示缺少QT5XX.dll. 找到对应dll放到文件夹下。又报无法定位程序输入。
分析原因: 找的dll文件不对。
解决方法:利用qt自带发布工具windeployqt 自动添加依赖系统库。
其他第三方库和图标等资源文件还是得自己手动拷。

QT链接DLL库问题记录相关推荐

  1. qt调用matlab生成的dll库

    最近由于在项目中要用到matlab的算法,而用C++转换matlab算法非常麻烦,所以采用qt+matlab混合编程的方法,在使用中遇到了些许问题,特记录如下. 一.生成matlab库 1.首先需要下 ...

  2. UE4链接第三方库(lib和dll)

    摘要: 写这个文章主要是被UE官方的wiki和answerhub误导了很久,这本来是一个很常见和基本的问题,但是无论是官方的wiki或者是论坛上的提问都十分散乱并且充斥各种错误,因此记录下这个在开发中 ...

  3. Qt调用Matlab库C#库dll调用C++调用C#库CSharp库lib invoke matlab library .net donet netframework

    Qt调用Matlab库C#库dll调用C++调用C#库CSharp库lib invoke matlab library .net donet netframework 该文章是一篇说明c++/Qt调用 ...

  4. c#工业自动化控制链接开发库(注意是DLL文件,链接库,非源码)

    c#工业自动化控制链接开发库(注意是DLL文件,链接库,非源码). 1.PLC通信功能:包含(倍福,ab,欧姆龙,西门子,三菱,松下,信捷PLC): 2.modbus通信功能:包 含 RTU,RTU, ...

  5. QT DLL库报错:file not recognized: File format not recognized

    QT DLL库报错:file not recognized: File format not recognized 我的解决方式是把debug32改成64了 不过网上还有一种说法就是切换编译器: MS ...

  6. QT 调用 DLL 的三种方法

    Qt调用DLL方法一:使用Win32 API h文件 typedef bool (CALLBACK* SetKeyBoardHook)(HWND); HINSTANCE hDLL; // Handle ...

  7. Qt DLL总结-创建及调用QT的 DLL

    目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...

  8. Qt DLL总结【二】-创建及调用QT的 DLL

    目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...

  9. LabVIEW与MATLAB联合编程之使用dll库文件连接

    LabVIEW与MATLAB联合编程之使用dll库文件连接 最近做东西的时候用到了在LabVIEW里面调用MATLAB的分类模型,辗转多篇文章终于搞定,特此记录,以供参考. 编程环境:Windows1 ...

最新文章

  1. 子网地址,广播地址,子网掩码,主机地址范围,求法总结
  2. 机器学习、深度学习、自然语言处理、计算机视觉顶级期刊的论文资料分享(附顶会论文下载链接)...
  3. C++ MFC控制台输出调试信息
  4. Android开发者珍藏必备【学习资料篇】
  5. POJ 2337 输出欧拉路径
  6. java 解密后为空_java RSA加密解密
  7. 交换机组播风暴_广播风暴的成因以及解决办法有哪些?
  8. 趣谈程序员真香定律:源码即设计
  9. 绘制彩虹html代码,HTML5 Canvas 彩虹螺旋图生成器
  10. 程序员的进阶课-架构师之路(18)-图
  11. python进阶04IO的同步异步,阻塞非阻塞
  12. Tensorflow训练和预测中的BN层的坑(转载)
  13. 正则学习之一:在js中使用正则表达式
  14. YOLO v4 图片批量测试
  15. 《HTML 编辑器》
  16. 1714. 混合牛奶
  17. linux文件操作和目录操作,Linux基础操作1——文件和目录
  18. Compose Android 开发终极挑战赛: 天气应用
  19. 【渝粤题库】陕西师范大学202511商法学 作业(高起本)
  20. The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files

热门文章

  1. 飞鸽-http://www.freeeim.com/
  2. 我的一个朋友加班猝死了,我很恐慌
  3. 一线大厂青睐的前端人,90%满足这3个条件
  4. android 渠道方案,Android多渠道打包时获取当前渠道的方法
  5. 图片也要查重了?期刊用AI审论文防造假,旋转/翻转/拉伸都不行
  6. 详细讲述CV的创作与包装
  7. ps专业色彩调色扩展面板 Moody Photoshop Panel 1.1.2汉化版
  8. java jvm 查看内存_JVM:查看java内存情况命令
  9. 界址点圆圈怎么生成_大千世界怎么钓鱼?大千世界钓鱼方法及灵气之水获取攻略...
  10. 1949:【10NOIP普及组】数字统计