QBS配置指定Qt版本时出现5.12.8与5.15.2版本不兼容报错
问题根本原因
- 你通过apt安装的qbs本身是基于系统自带的Qt 5.12.8编译的,运行qbs命令时,进程默认会加载系统路径下的5.12.8版本Qt核心库
qbs setup-qt执行过程中需要调用你指定的Qt 5.15.2的qmake,同时会加载5.15.2版本的Qt相关模块到当前qbs进程中,同一进程加载两个不兼容的Qt版本就触发了报错- 你设置的
ignoreSystemSearchPaths是QBS构建项目时的参数,作用是控制项目编译阶段的头文件、链接库搜索路径,完全不影响qbs程序自身运行时的动态库加载逻辑,所以加了也没用
可行解决方案
任选一种即可,推荐第一种改动最小:
方案1:运行qbs前优先加载Qt 5.15.2的库路径
修改setup qbs步骤,在执行所有qbs命令前将Qt 5.15.2的库路径加入LD_LIBRARY_PATH环境变量:
- name: setup qbs run: | export LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH qbs setup-qt $Qt5_DIR/bin/qmake qt qbs config --list profiles qbs config defaultProfile qt qbs config profiles.qt.preferences.ignoreSystemSearchPaths true
后续所有需要执行qbs构建的步骤,都要先设置这个环境变量,保证qbs运行时加载的是5.15.2版本的Qt库。
方案2:不使用apt源的qbs,安装和Qt 5.15.2版本匹配的qbs
apt安装阶段去掉qbs的安装,直接通过install-qt-action安装配套的qbs:
- name: install clang12, qmake run: | sudo apt-get update -y sudo apt-get install -y clang-12 llvm-12 qt5-qmake - name: Install Qt and qbs uses: jurplel/install-qt-action@v2 with: version: 5.15.2 modules: qbs
这个方案安装的qbs本身就是基于Qt 5.15.2编译的,不会出现版本冲突问题。
内容的提问来源于stack exchange,提问作者SebastianH
相关产品推荐
相关产品推荐

