QT链接DLL库问题记录
昨天拿到个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库问题记录相关推荐
- qt调用matlab生成的dll库
最近由于在项目中要用到matlab的算法,而用C++转换matlab算法非常麻烦,所以采用qt+matlab混合编程的方法,在使用中遇到了些许问题,特记录如下. 一.生成matlab库 1.首先需要下 ...
- UE4链接第三方库(lib和dll)
摘要: 写这个文章主要是被UE官方的wiki和answerhub误导了很久,这本来是一个很常见和基本的问题,但是无论是官方的wiki或者是论坛上的提问都十分散乱并且充斥各种错误,因此记录下这个在开发中 ...
- 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调用 ...
- c#工业自动化控制链接开发库(注意是DLL文件,链接库,非源码)
c#工业自动化控制链接开发库(注意是DLL文件,链接库,非源码). 1.PLC通信功能:包含(倍福,ab,欧姆龙,西门子,三菱,松下,信捷PLC): 2.modbus通信功能:包 含 RTU,RTU, ...
- QT DLL库报错:file not recognized: File format not recognized
QT DLL库报错:file not recognized: File format not recognized 我的解决方式是把debug32改成64了 不过网上还有一种说法就是切换编译器: MS ...
- QT 调用 DLL 的三种方法
Qt调用DLL方法一:使用Win32 API h文件 typedef bool (CALLBACK* SetKeyBoardHook)(HWND); HINSTANCE hDLL; // Handle ...
- Qt DLL总结-创建及调用QT的 DLL
目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...
- Qt DLL总结【二】-创建及调用QT的 DLL
目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...
- LabVIEW与MATLAB联合编程之使用dll库文件连接
LabVIEW与MATLAB联合编程之使用dll库文件连接 最近做东西的时候用到了在LabVIEW里面调用MATLAB的分类模型,辗转多篇文章终于搞定,特此记录,以供参考. 编程环境:Windows1 ...
最新文章
- 子网地址,广播地址,子网掩码,主机地址范围,求法总结
- 机器学习、深度学习、自然语言处理、计算机视觉顶级期刊的论文资料分享(附顶会论文下载链接)...
- C++ MFC控制台输出调试信息
- Android开发者珍藏必备【学习资料篇】
- POJ 2337 输出欧拉路径
- java 解密后为空_java RSA加密解密
- 交换机组播风暴_广播风暴的成因以及解决办法有哪些?
- 趣谈程序员真香定律:源码即设计
- 绘制彩虹html代码,HTML5 Canvas 彩虹螺旋图生成器
- 程序员的进阶课-架构师之路(18)-图
- python进阶04IO的同步异步,阻塞非阻塞
- Tensorflow训练和预测中的BN层的坑(转载)
- 正则学习之一:在js中使用正则表达式
- YOLO v4 图片批量测试
- 《HTML 编辑器》
- 1714. 混合牛奶
- linux文件操作和目录操作,Linux基础操作1——文件和目录
- Compose Android 开发终极挑战赛: 天气应用
- 【渝粤题库】陕西师范大学202511商法学 作业(高起本)
- The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
热门文章
- 飞鸽-http://www.freeeim.com/
- 我的一个朋友加班猝死了,我很恐慌
- 一线大厂青睐的前端人,90%满足这3个条件
- android 渠道方案,Android多渠道打包时获取当前渠道的方法
- 图片也要查重了?期刊用AI审论文防造假,旋转/翻转/拉伸都不行
- 详细讲述CV的创作与包装
- ps专业色彩调色扩展面板 Moody Photoshop Panel 1.1.2汉化版
- java jvm 查看内存_JVM:查看java内存情况命令
- 界址点圆圈怎么生成_大千世界怎么钓鱼?大千世界钓鱼方法及灵气之水获取攻略...
- 1949:【10NOIP普及组】数字统计