当前位置: 首页 > article >正文

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,不过可能会无法下载。

在这里插入图片描述




http://www.kler.cn/a/446751.html

相关文章:

  • 多智能体/多机器人网络中的图论法
  • MySQL 分区与分表策略
  • WIN10拖入文件到桌面,文件自动移动到左上角,导致桌面文件错乱
  • 信号处理相关的东东(学习解惑)
  • java list 和数组互相转换的一些方法
  • LeetCode hot100-88
  • Ajax简单理解
  • raft: Failed to contact
  • 从零搭建纯前端飞机大战游戏(附源码)
  • Restaurants WebAPI(三)——Serilog/
  • 前端学习二
  • SQL血缘解析
  • ubuntu镜像开荒ssh
  • [数据结构] 链表
  • 【Linux开发工具】版本控制器git
  • Vivado - 远程调试 + 远程综合实现 + vmWare网络配置 + NFS 文件共享 + 使用 VIO 核
  • 如何看待Java面试造火箭工作拧螺丝?
  • 怎么将pdf中的某一个提取出来?介绍几种提取PDF中页面的方法
  • 数据结构与算法学习笔记----Prim算法
  • 复盘:“辩论赛”复盘
  • 容联云孔淼:金融数智化深水区,从数字化工具到业务变革提效
  • 驾考科目一考什么?
  • 感受野如何计算?
  • vtie项目中使用到了TailwindCSS,如何打包成一个单独的CSS文件(优化、压缩)
  • 阿里云OSS批量导出下载地址 OSS批量导出 OSS导出清单
  • 应用端sql慢查询监控分析