[✔️]Qt的学习踩坑笔记

简介: [✔️]Qt的学习踩坑笔记

Qt安装


在线安装QT,下载安装器在安装的过程中,需要手动选择安装的qt版本,已经相对于的tools,qt creator是一个ide,必须安装的。 如果忘记安装,可以重新打开Qt/MaintenanceTool.exe进行更新维护。


Qt发布release



image.png


windeployqt ./


windeployqt 是一个由 Qt 提供的命令行工具,用于部署 Qt 程序到 Windows 平台上。它可以自动将程序所依赖的 Qt 动态链接库和其他必要的文件复制到程序的运行目录,从而避免因缺少文件而无法运行。


例如,如果你的程序为 myapp.exe,可以通过以下命令行将其部署到当前目录下的 deploy 文件夹中:


windeployqt --release --no-compiler-runtime --no-opengl-sw myapp.exe


其中,--release 表示发布版本,--no-compiler-runtime 表示不包含编译器运行时库,--no-opengl-sw 表示不包含 OpenGL 软件渲染库。这些选项可以根据需要进行调整。


应用程序错误0x00007b


发布后有时启动应用程序会发生错误,大部分情况下都是debug、release、位数、qt版本混用导致的。



image.png


排查方向:


  • windeployqt的版本是否一致,一定要使用qt编译器对应的windeployqt,我这边更换过编译器版本,但是环境变量没有及时同步,导致配套的dll是不对应的。


  • 管理员身份启动cmd,执行sfc ./scannow,有一定的效果,我这边发现exe会自动以兼容模式运行,屏幕分辨率会异常,修复之前兼容模式是无法启动的。


image.png


最后定位到的问题


image.png


Qt5Positioning.dll导致的问题,


  • 左边是错误的版本


  • 右边是正确的版本,是我手动一个一个copy的


如何判断dll是32位还是64位?


  • 32位


image.png


  • 64位:


image.png


查询依赖的dll


visual studio自带工具,dumpbin /dependents “exe或dll的路径” 即可查询该exe的依赖项dll。


image.png


使用vs编译QT项目一直提示 machine type 不匹配的问题解决办法


一直提示Machine X86的问题Debug.win32\Application.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'我也尝试着将Target Machive 设置为X86了,仍旧提示这个问题:


image.png


突然想到,应该是qt的编译器我使用的是64位的


image.png


下载了32位的编译器


image.png


但是好像还是不行,于是将编译器设置为32位后


image.png


重新建立了新的工程,发现就可以了,应该也可以把项目整体都配置为64位,不过好多坑,就没有这样做

目录
相关文章
|
Linux C语言
[学习][笔记] qt5 从入门到入坟:<一>hello Qt
[学习][笔记] qt5 从入门到入坟:<一>hello Qt
|
3月前
|
定位技术 Go 开发工具
dynamic-situational-awareness-qt学习记录
本文是作者yantuguiguziPGJ关于dynamic-situational-awareness-qt学习记录的分享,介绍了在Qt学习过程中发现的qml资源丰富的代码仓库,并提供了资源路径和相关的安装、配置步骤,涉及的内容有数字地球、GIS纹理等,同时提供了相关链接和git命令来克隆代码仓库和ArcGIS Runtime SDK for Qt的安装说明。
|
5月前
|
C++
Qt中的信号与槽如何学习?(包括自定义信号)这篇文章告诉你
以现实中的事件来举例的话,例如有两把不同颜色的信号枪,分别是红色,绿色,打响不通颜色的信号枪会触发不同的槽发生,比如说打响红色这个人就跑步,绿色就走步,但是还有一个很重要的机制,那就是连接,我们需要把信号枪去跟这个人的动作连接起来。 如果上面理解没问题的话我们可以把信号和槽看成两个工具,我们最重要的是如何去把这两个工具连接起来。 它的作用可以让我们更加灵活的去使用不同窗口间的切换以及某些事件的连接。
112 0
|
5月前
|
开发者
Qt中的事件该如何学习?(附带案例)
事件是Qt中比较重要的一部分,在初期如果理解不当学习可能会比较困难,这里提一嘴当初教我的那位老师水平是真的高,让我很轻易的就理解了事件的概念。 在平时我们见到那些界面上的某些快捷键就有可能是事件做的,例如ESC关闭窗口,Enter提交或者登录这种类似的,这也是事件的强大之处。
133 0
|
API
QT学习—属于自己的串口调试助手
本文详细介绍了如何编写一个属于自己的串口助手。
731 3
[学习][笔记] qt5 从入门到入坟:《零》vs开发qt项目
[学习][笔记] qt5 从入门到入坟:《零》vs开发qt项目
|
定位技术 图形学
[学习][笔记] qt5 从入门到入坟:<13>基于GraphicsViewFrame的贪吃蛇实现
[学习][笔记] qt5 从入门到入坟:<13>基于GraphicsViewFrame的贪吃蛇实现
|
图形学
[学习][笔记] qt5 从入门到入坟:<12>Graphics View Framework
[学习][笔记] qt5 从入门到入坟:<12>Graphics View Framework
|
编解码 图形学
[学习][笔记] qt5 从入门到入坟:<11>绘制设备
[学习][笔记] qt5 从入门到入坟:<11>绘制设备
[学习][笔记] qt5 从入门到入坟:<10>坐标系统
[学习][笔记] qt5 从入门到入坟:<10>坐标系统