Qt安装
在线安装QT,下载安装器在安装的过程中,需要手动选择安装的qt版本,已经相对于的tools,qt creator是一个ide,必须安装的。 如果忘记安装,可以重新打开Qt/MaintenanceTool.exe
进行更新维护。
Qt发布release
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版本混用导致的。
排查方向:
windeployqt
的版本是否一致,一定要使用qt编译器对应的windeployqt,我这边更换过编译器版本,但是环境变量没有及时同步,导致配套的dll是不对应的。
- 管理员身份启动cmd,执行
sfc ./scannow
,有一定的效果,我这边发现exe会自动以兼容模式运行,屏幕分辨率会异常,修复之前兼容模式是无法启动的。
最后定位到的问题
Qt5Positioning.dll导致的问题,
- 左边是错误的版本
- 右边是正确的版本,是我手动一个一个copy的
如何判断dll是32位还是64位?
- 32位
- 64位:
查询依赖的dll
visual studio自带工具,dumpbin /dependents “exe或dll的路径”
即可查询该exe的依赖项dll。
使用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了,仍旧提示这个问题:
突然想到,应该是qt的编译器我使用的是64位的
下载了32位的编译器
但是好像还是不行,于是将编译器设置为32位后
重新建立了新的工程,发现就可以了,应该也可以把项目整体都配置为64位,不过好多坑,就没有这样做