- Вопрос или проблема
- Ответ или решение
- Решение проблемы: Ошибка qmlscene не может найти установку Qt
- 1. Проверка установленных версий Qt
- 2. Установка qmlscene и его зависимостей
- 3. Использование qtchooser для выбора версии Qt
- 4. Работа с конфигурацией qtchooser
- 5. Проверка среды выполнения
- 6. Тестирование
- Заключение
Вопрос или проблема
Я запускаю это в папке с main.qml
qmlscene main.qml
qmlscene: не удалось найти установку Qt ”
Затем я проверил
qtchooser -list-versions
4
5
qt4-x86_64-linux-gnu
qt4
qt5-x86_64-linux-gnu
qt5
и попробовал
sudo qmlscene -qt=qt5-x86_64_linux-gnu main.qml
qmlscene: не удалось найти установку Qt 'qt5-x86_64_linux-gnu'
Мне не удалось запустить qmlscene на новой системе Ubuntu 22.04 jammy недавно.
Сначала я столкнулся с этой ошибкой:
qmlscene: не удалось найти установку Qt ''
Затем после серии команд apt я устранил эту ошибку, но наткнулся на еще более длинную:
плагин не может быть загружен для модуля "QtQuick.Controls": Не удается защитить модуль QtQuick.Controls 2, так как он никогда не был зарегистрирован
Установленные пакеты apt были:
qtbase5-dev
qtchooser
qt5-qmake
qtbase5-dev-tools
qtcreator
Когда я использовал which
, чтобы узнать, откуда запускается qmlscene, я увидел, что это символическая ссылка на утилиту qtchooser:
ls -l /usr/bin/qmlscene
lrwxrwxrwx 1 root root 9 Mar 22 2020 /usr/bin/qmlscene -> qtchooser
В конечном итоге я нашел решение, которое работает для меня (на Ubuntu 22.04 jammy, как я упоминал).
Мне пришлось отредактировать /usr/share/qtchooser/qt5-x86_64-linux-gnu.conf
, чтобы qtchooser выбирал бинарные файлы Qt5 из специального каталога установки, который я создал сам.
Я установил Qt5 в свой собственный выбранный каталог, используя неофициальный установщик AQT. https://github.com/miurahr/aqtinstall
Вот мой вызов AQT:
python3 -m aqt install-qt --base http://ftp.fau.de/qtproject --outputdir /opt/repositories/Qt_desktop linux desktop 5.15.0 --archives icu qtbase qtconnectivity qtdeclarative qtgraphicaleffects qtimageformats qtquickcontrols qtquickcontrols2 qtsvg qttools
(Я также записал это здесь: https://github.com/219-design/qt-qml-project-template-with-ci/blob/master/tools/ci/get_qt_libs.sh )
Вот новое содержание /usr/share/qtchooser/qt5-x86_64-linux-gnu.conf
:
/opt/repositories/Qt_desktop/5.15.0/gcc_64/bin
/opt/repositories/Qt_desktop/5.15.0/gcc_64/lib
#/usr/lib/qt5/bin
#/usr/lib/x86_64-linux-gnu
.
Ответ или решение
Решение проблемы: Ошибка qmlscene не может найти установку Qt
Если вы столкнулись с ошибкой qmlscene: could not find a Qt installation of ''
при попытке запустить qmlscene
на системе Ubuntu 22.04, это может быть связано с неправильной настройкой окружения или отсутствием необходимой версии Qt. Давайте рассмотрим возможные причины и пути решения данной проблемы, основываясь на вашем случае.
1. Проверка установленных версий Qt
Сначала вам следует убедиться, что у вас установлен Qt и его компоненты. Вы уже проверили доступные версии с помощью команды:
qtchooser -list-versions
Это выводит список доступных версий Qt, и в вашем случае видно, что есть версии qt4
и qt5
:
4
5
qt4-x86_64-linux-gnu
qt4
qt5-x86_64-linux-gnu
qt5
2. Установка qmlscene и его зависимостей
Убедитесь, что у вас установлены все необходимые пакеты для работы с Qt5. Вы упомянули, что установлены следующие пакеты:
qtbase5-dev
qtchooser
qt5-qmake
qtbase5-dev-tools
qtcreator
Если какие-то пакеты отсутствуют, вам нужно установить их с помощью следующей команды:
sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtcreator
3. Использование qtchooser для выбора версии Qt
Команда qmlscene
является символической ссылкой на qtchooser
, что означает, что он будет использовать версию Qt, которую вы указали в настройках qtchooser. Однако, как вы обнаружили, использование:
sudo qmlscene -qt=qt5-x86_64_linux-gnu main.qml
выдает ошибку qmlscene: could not find a Qt installation of 'qt5-x86_64_linux-gnu'
. Это означает, что qtchooser не может найти необходимые бинарные файлы для выполнения этой команды.
4. Работа с конфигурацией qtchooser
Решением проблемы может стать редактирование файла конфигурации, чтобы qtchooser указывал на вашу собственную директорию установки Qt. Как вы уже сделали, вы можете отредактировать файл:
/usr/share/qtchooser/qt5-x86_64-linux-gnu.conf
И заменить содержимое на:
/opt/repositories/Qt_desktop/5.15.0/gcc_64/bin
/opt/repositories/Qt_desktop/5.15.0/gcc_64/lib
#/usr/lib/qt5/bin
#/usr/lib/x86_64-linux-gnu
Это направит qtchooser на использование вашей установленной версии Qt 5.15.0, которую вы установили с помощью AQT (https://github.com/miurahr/aqtinstall).
5. Проверка среды выполнения
После внесения изменений обязательно выполните команду:
qtchooser -print-env
Это должно показать, что переменные среды QTDIR
и PATH
указывают на вашу установленную версию Qt. Убедитесь, что все настройки корректны.
6. Тестирование
Теперь попробуйте снова запустить вашу QML-программу с помощью qmlscene
:
qmlscene main.qml
Если все настройки выполнены правильно, программа должна запуститься без ошибок.
Заключение
Таким образом, проблема с ошибкой qmlscene: could not find a Qt installation of ''
может быть решена путем правильной настройки qtchooser и указания на вашу установленную версию Qt. Не стесняйтесь обращаться за дополнительной помощью, если потребуется, и удачи в вашем проекте с Qt!