#qt #github-actions #qbs
Вопрос:
Я работаю над действием на github. Мне нужно скомпилировать программу для конкретной версии qt. Программа построена с использованием qbs. У меня возникла проблема с настройкой qbs таким образом, чтобы он использовал правильную версию Qt. Установлено две версии. Первый устанавливается с помощью sudo apt-get. Это версия 5.12.8. Эта версия установлена как зависимость от qbs. Второй qt устанавливается вместе с aqt. Это версия 5.15.2.
Сценарий действия на github-это
name: Qbs-Tests
on: push
jobs:
ubuntu:
name: "test on ubuntu"
runs-on: ubuntu-latest
steps:
- name: install clang12, qbs, qmake
run: |
sudo apt-get update -y
sudo apt-get install -y clang-12 llvm-12 qbs qt5-qmake
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: 5.15.2
- name: setup qbs
run: |
qbs setup-qt $Qt5_DIR/bin/qmake qt
qbs config --list profiles
qbs config defaultProfile qt
Но это невозможно, так как я получил сообщение об ошибке
Creating profile 'qt'.
You may want to set up toolchain information for the generated Qt profile.
profiles.qt.moduleProviders.Qt.qmakeFilePaths: "/home/runner/work/QSqlMigrator/Qt/5.15.2/gcc_64/bin/qmake"
Cannot mix incompatible Qt library (5.12.8) with this library (5.15.2)
Я также попытался игнорировать путь системного поиска (обменивается только последняя строка). См. Документ qbs
qbs config profiles.qt.preferences.ignoreSystemSearchPaths true
Но это также приводит к сообщению об ошибке
Cannot mix incompatible Qt library (5.12.8) with this library (5.15.2)
Почему я не могу настроить профиль? Я даже не могу игнорировать системный путь. Откуда взялась несовместимость библиотеки? Я настраиваю только 5.15.2.
Комментарии:
1. Мне кажется, что проблема не в самом qbs, а в вашей системе. Сообщение, которое вы видите, исходит из внутренних компонентов библиотеки Qt. Поскольку Qbs зависит от Qt, он выводит эту ошибку, поскольку среда выполнения, загружаемая при запуске Qbs, отличается от той, которая использовалась при компиляции Qbs. Вы можете проверить эту теорию, вызвав ldd в двоичном файле qbs, чтобы узнать, какую библиотеку Qt он использует. Мне кажется, что сценарий установки, который вы используете, экспортирует библиотеки Qt в LD_LIBRARY_PATH здесь github.com/jurplel/install-qt-action/blob/master/src/… — и это может вызвать проблему.
2. Я думаю, вы могли бы попробовать просто очистить LD_LIBRARY_PATH при запуске Qbs