QT开发问题与解决办法总结(持续总结)
- 问题1:ubuntu20.04 上使用在线安装方式安装QT,QT Creator后无法启动问题
- 问题2:libQt5WebEngineCore.so: .dynsym local symbol at index 3 (>= sh_info of 3)
- 问题3:Qt工程报错:-1: error: Cannot run compiler ‘clang++‘
- 问题4: Ubuntu系统Qt软件安装包移植到系统的配置
- 问题5:关于Qt 构建套件(Kit) 编译器 自动识别不正确 不能修改的问题
- 问题6:插件初始化失败: The maintenance tool at "/home/*****/Qt/MaintenanceTool" is not an executable. Check your installation.
- 问题7:Virtual machine monitor failed and Virtual ethernet failed
- 问题8:QT编译报错之 C2061:语法错误:标示符"xxxx"
问题1:ubuntu20.04 上使用在线安装方式安装QT,QT Creator后无法启动问题
解决办法:如下博客
这个博客提供了详细的说明、分析和解决办法
主要是因为报错:libxcb-cursor. so. 0: cannot open shared object file: No such file or directory
解决办法:sudo apt install libxcb-cursor0
问题2:libQt5WebEngineCore.so: .dynsym local symbol at index 3 (>= sh_info of 3)
这个问题是动态链接库的问题,我尝试着在pro文件添加:
CONFIG +=use_lld_linker
此问题解决了,又出现了新的问题:Linking issue with WebEngine, Qt5Positioning and math functions __atan2_finite __acos_finite
因此另寻他法,使用如下指令,但在次之前先要安装lld
sudo apt-get install lld
sudo ln -sf /usr/bin/x86_64-linux-gnu-ld.gold /usr/bin/ld
ldd
是一个用于显示一个二进制文件所依赖的动态链接库的命令。ldd 命令会列出该二进制文件所依赖的动态链接库,并显示它们的路径。这些动态链接库包括操作系统提供的共享库(如 libc.so、libpthread.so)以及其他自定义的共享库。sudo ln -sf /usr/bin/x86_64-linux-gnu-ld.gold /usr/bin/ld
的含义/usr/bin/x86_64-linux-gnu-ld.gold 是一个 GNU Linker 的可执行文件,它用于将目标文件链接成可执行文件。而 /usr/bin/ld 是 Linux 系统默认的链接器。通过这个命令,我们可以将系统默认的链接器路径指向 GNU Linker,以便使用 GNU Linker 进行更高效的链接操作。
问题3:Qt工程报错👎 error: Cannot run compiler ‘clang++‘
问题原因:我的qt项目原是在window平台 minGW编译器编译的,转到ubuntu后使用gcc编译器,但是GCC编译器有两种g++和clang,因此要在kit管理中更换编译器
更改编译器:
C
和C++
为GCC
编译器
问题4: Ubuntu系统Qt软件安装包移植到系统的配置
下载Qt比较费时,就想着把之前下载安装的Qt软件复制粘贴到新的Ubuntu系统上,主要是作环境变量的设置,本文参考linux ubuntu安装qtcreater,配置qt环境到可运行qt项目,操作步骤如下:
-
安装C/C++编译环境
sudo apt-get install build-essential
-
配置QT环境变量
与修改Windows环境变量差不多- 修改 /etc/profile 文件
sudo vim /etc/profile
- 文件结尾追加(注意这里要换成自己的路径)
export QT_PATH=/opt/Qt/5.15.2/gcc_64 export QT_CREATOR_PATH=/opt/Qt/Tools/QtCreator export LD_LIBRARY_PATH=$QT_PATH/lib:$LD_LIBRARY_PATH export PATH=$PATH:$QT_PATH/bin:$QT_CREATOR_PATH/bin
- 刷新环境变量
source /etc/profile
- 修改 /etc/profile 文件
-
在终端下执行
qtcreator
命令,应该会报xcb
的错误这里产生xcb错误的原因是不一样的,参考是
libxcb-xinerama.so.o
的问题Got keys from plugin meta data ("xcb") QFactoryLoader::QFactoryLoader() checking directory path "/opt/Qt/Tools/QtCreator/bin/platforms" Cannot load library /opt/Qt/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so ... (libxcb-xinerama.so.0: cannot open shared object file: No such file or directory)"qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in
-
解决xcb导致qtcreator无法启动问题,安装缺失的库
- 使用apt搜索这个库
可以找到两个
apt search libxcb-xinerama
一般做开发用到的库都是 xxx-dev xxx-devel之类的libxcb-xinerama0/focal 1.14-2 amd64 X C Binding, xinerama extension libxcb-xinerama0-dev/focal 1.14-2 amd64 X C Binding, xinerama extension,development files
- 安装缺失的库
sudo apt-get install libxcb-xinerama0-dev
- 使用apt搜索这个库
-
再次运行qtcreator
可以正常启动了
问题5:关于Qt 构建套件(Kit) 编译器 自动识别不正确 不能修改的问题
问题描述:由于我的qt是从其他系统拷贝过来进行的环境配置后进行的qt启动,这样拷贝过来的qt软件有很多之前系统里的配置,当打开qt项目时,会让你“配置构建套件“,这时候就会发现**”Configure …“是无法点击**,查看“Qt Version”发现自动检测到的并不是我们拷贝过来的qt下的qmake可执行文件的路径,而且也无法修改。
解决办法:到qtcreator\QtProject\qtcreator
路径下找三个文件 profiles.xml
qtversion.xml
toolchains.xml
,打开这些文件,修改里面的路径,保存即可。
问题6:插件初始化失败: The maintenance tool at “/home/*****/Qt/MaintenanceTool” is not an executable. Check your installation.
解决办法:
在软件安装文件夹目录下使用grep命令查找制定字符串
grep -r -i "your_search_string" /path/to/search/directory
-r:遍历查找;-i:不区分大小写
根据搜索查找结果,更改QtCreator.ini
文件内路径即可
问题7:Virtual machine monitor failed and Virtual ethernet failed
问题:系统的安全启动没有关闭
解决:参考
问题8:QT编译报错之 C2061:语法错误:标示符"xxxx"
问题:语法错误
解决:
-
查看是Windows(CRLF)还是Unix(LF)
-
使用Notepad++查看报错的源码文件的编码格式,为跨平台建议改成utf-8-BOM,并在配置文件中添加配置
# 检查是否使用 MSVC 编译器
if(MSVC)
# 添加 /utf-8 编译选项
add_compile_options(/utf-8)
endif()