QT开发问题与解决办法总结(持续总结)

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) 编译器 自动识别不正确 不能修改的问题

问题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管理中更换编译器
QT开发问题与解决办法总结(持续总结)_第1张图片更改编译器:CC++GCC编译器

问题4: Ubuntu系统Qt软件安装包移植到系统的配置

下载Qt比较费时,就想着把之前下载安装的Qt软件复制粘贴到新的Ubuntu系统上,主要是作环境变量的设置,本文参考linux ubuntu安装qtcreater,配置qt环境到可运行qt项目,操作步骤如下:

  1. 安装C/C++编译环境
    sudo apt-get install build-essential

  2. 配置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
  3. 在终端下执行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   
    
  4. 解决xcb导致qtcreator无法启动问题,安装缺失的库

    • 使用apt搜索这个库
      可以找到两个
      apt search libxcb-xinerama
      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
      
      一般做开发用到的库都是 xxx-dev xxx-devel之类的
    • 安装缺失的库
      sudo apt-get install libxcb-xinerama0-dev
  5. 再次运行qtcreator
    可以正常启动了

问题5:关于Qt 构建套件(Kit) 编译器 自动识别不正确 不能修改的问题

问题描述:由于我的qt是从其他系统拷贝过来进行的环境配置后进行的qt启动,这样拷贝过来的qt软件有很多之前系统里的配置,当打开qt项目时,会让你“配置构建套件“,这时候就会发现**”Configure …“是无法点击**,查看“Qt Version”发现自动检测到的并不是我们拷贝过来的qt下的qmake可执行文件的路径,而且也无法修改。
解决办法:到qtcreator\QtProject\qtcreator 路径下找三个文件 profiles.xml qtversion.xml toolchains.xml ,打开这些文件,修改里面的路径,保存即可。

你可能感兴趣的:(QT相关,qt,c++)