Qt开发经验 --- 避坑指南(2)
文章目录
- 1、 Heob窗口变得非常长,配置名称是一长串乱码
- 2、 Qt安装报错 `From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.`
- 3、Cmake编译错误`找不到libwinpthread-1.dll`
- 4、CMake编译找不到mingw
- 5、linux下qtcreator启动报错`cannot mix incompatible qt library (6.7.2) with this library(6.7.3)`
- 6、QSettings使用bug
- 7、msvc打包缺少msvcp140.dll库
1、 Heob窗口变得非常长,配置名称是一长串乱码
- Heob窗口中的配置保存在
C:\Users\MHF\AppData\Roaming\QtProject\QtCreator.ini
配置文件中,如果因为某些不可知原因导致配置文件中出现中文乱码或者导致heob的配置名称变成一串串乱码,就会导致字符串把Heob窗口撑得很长; - 打开配置文件,手动把乱码删除掉就可以了。
2、 Qt安装报错 From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
- ubuntu22.04安装Qt5.14.2、QtCreator14.0.2;
- 启动后报错
From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: vnc, wayland-egl, linuxfb, minimal, eglfs, minimalegl, vkkhrdisplay, xcb, wayland, offscreen.
- 需要安装
sudo apt-get install libxcb-cursor0
3、Cmake编译错误找不到libwinpthread-1.dll
- 使用Cmake编译spdlog时,编译器选择Mingw,在编译时报错如下:
解决办法
- 通过提示可以看出是cc1plus.exe这个程序找不到libwinpthread-1.dll库;
- 使用everything搜索cc1plus.exe和libwinpthread-1.dll;
- 由于我选择的编译器是Mingw1310_64,所以就找对应编译器路径下的;
- 将找到的libwinpthread-1.dll复制到cc1plus.exe所在路径下,问题就解决啦。
4、CMake编译找不到mingw
-
使用CMake编译程序时,选择Mingw编译器;
-
如果安装有多个版本的Mingw,在配置时会报错如下所示:
CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
Configuring incomplete, errors occurred!
- 这是找不到mingw路径;
- 如下所示,勾选上【Advanced】,然后找到CMAKE_MAKE_PROGRAM,这mingw路径。
- 然后重新点击【Configure】就可以了。
5、linux下qtcreator启动报错cannot mix incompatible qt library (6.7.2) with this library(6.7.3)
- 由于linux系统环境变量中有多个版本的qt库,导致qtcreator不知道使用哪个版本的,所以启动报错;
- 解决办法:将qtcreator安装路径下的lib文件夹重命名为其它名称,屏蔽掉自身的库,然后使用ldd命令查看qtcreator的链接路径就可以找到其它版本的库所在位置,然后删除多余的库。
6、QSettings使用bug
出现环境:
- windows11、Qt5.12.12、MSVC2017-64
问题现象:
- 使用QSettings时忘记设置文件格式为
QSettings::IniFormat
,则在使用qtcreator编译运行时可以读取ini文件,打包后双击运行无法读取Ini文件。
7、msvc打包缺少msvcp140.dll库
报错信息:
Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set.
- 使用msvc编译的qt程序在使用windeployqt.exe打包后可能会缺少vc的部分动态库,包括msvcp140.dll、MSVCRT.dll等;
- 使用Dependencies gui打开可执行程序可以看见,这些库位于系统路径下,如果其它电脑环境中没有这些库,那程序运行就会报错,提示缺少库;
- 解决办法1:使用Dependencies GUI查看缺少的库,然后使用Everything查找库位置,手动复制到可执行程序路径下;
- 解决办法2:使用Everything搜索vc_redist程序,或者在
D:\Qt\Qt5.14.2\vcredist
路径下找到vcredist_msvc2017_x64.exe程序,复制到缺失库的电脑是运行安装就可以了。
- 解决办法3:打开环境变量,添加VS安装路径到环境变量VCINSTALLDIR,打包后会自动将vc_redist.exe打包到当前文件夹,程序拷贝到其它电脑上运行如果缺失库,可以安装vc_redist.exe;
- 解决办法4:到微软官网下载vc_redist.exe,不过可能会无法下载。