1 / 1 / 2
Регистрация: 22.04.2015
Сообщений: 27
1

Запуск Qt/QML приложения вне Qt Creator

17.09.2018, 22:17. Показов 5049. Ответов 11

Author24 — интернет-сервис помощи студентам
Доброго времени суток,
пытаюсь подготовить свой проект Qt Quick Application для запуска на компьютере без Qt.
Qt 5.10.0.

Использовал для этого windeployqt.exe:




Результат отрицательный:



Методом подбора (у меня на компьютере есть Qt версий 5.6, 5.8, 5.10.0) программа запустилась с .dll от Qt 5.8.
Хотя сам Qt код говорит, что работает на 5.10.0, как и должно быть.



Код завершает свою работу на 30й строке, т.к. не может подгрузить .qml файл первого окна, с которого все и начинается.

Внутри .exe файла из всех ресурсных .qml есть только те, что в директории qrc:/QmlComponents/ :




Ни из qrc:/, ни из qrc:/QmlComponents/QmlPrimitiveComponents/ ничего нет.
Подгрузить qrc:/loginWindow.qml не получается.

Содержимое qml.qrc:


Использовал:
Qt 5.10.0
Qt Creator 4.7.0 32bit
MinGW 5.3 32bit
windeployqt.exe из "G:\Qt_new\5.10.0\mingw53_32\bin\windeployqt.exe"
.exe релизной сборки.

Какие могут быть идеи? Почему часть ресурсных файлов отсутствует в сборке?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2018, 22:17
Ответы с готовыми решениями:

Запуск QML приложения
Здравствуйте, возникла проблема. Из QtCreator приложение прекрасно запускается и работает, но если...

Запуск qml приложения на другом компе
Попытка запустить приложение написанное на qml+c++ была безуспешна как и последующие 15. сначала...

Запуск Qt приложений .exe вне Qt Creator
У меня Qt 5.9, пытался делать по этой инструкции: http://blog.harrix.org/article/1015, но что-то...

Файл Resourse. Запуск приложения вне среды Qt
Добрый день. В своем проекте использую файл ресурсов, в котором прописаны jpg файлы. При запуске...

11
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.09.2018, 22:32 2
По теме деплоя LibraryCollector

Добавлено через 4 минуты
Цитата Сообщение от Humsterino Посмотреть сообщение
Какие могут быть идеи? Почему часть ресурсных файлов отсутствует в сборке?
Иногда требуется банально очистить проект, перезапустить qmake, перезапустить сборку.
У QtCreator вечная проблема с отслеживание измененных файлов, которую почему то никак не фиксят.
0
1 / 1 / 2
Регистрация: 22.04.2015
Сообщений: 27
17.09.2018, 22:35  [ТС] 3
Я начал весь этот процесс с DLL Collector - он не справился.

0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.09.2018, 22:36 4
Так это пипец какая древняя версия у Вас на скрине.
Я уже не говорю о том что у Вас просто процесс падает о чем и пишется в лог.
0
1 / 1 / 2
Регистрация: 22.04.2015
Сообщений: 27
17.09.2018, 22:41  [ТС] 5
Да, Clean all -> Run qmake -> Rebuild all уже стала привычной комбинацией в большинстве непонятных ситуаций, например, когда даже изменения параметра цвета объекта QML не применяется, но, к сожалению, в этот раз не помогает.

Добавлено через 1 минуту
Процесс падает только в коллекторе, после деплоймента от windeployqt он выполняется: создает директорию для кеша и выходит на условии if (engine.rootObjects().isEmpty()).
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.09.2018, 22:43 6
Цитата Сообщение от Humsterino Посмотреть сообщение
Да, Clean all -> Run qmake -> Rebuild all уже стала привычной комбинацией в большинстве непонятных ситуаций, например, когда даже изменения параметра цвета объекта QML не применяется, но, к сожалению, в этот раз не помогает.
Значит вероятно это баг.

Добавлено через 1 минуту
Цитата Сообщение от Humsterino Посмотреть сообщение
Процесс падает только в коллекторе, после деплоймента от windeployqt он выполняется: создает директорию для кеша и выходит на условии if (engine.rootObjects().isEmpty()).
Подает по тому что пути нужно указывать правильно. Ясен фиг если указать левые пути он будет падать потому что библиотеки не находит.
0
1 / 1 / 2
Регистрация: 22.04.2015
Сообщений: 27
17.09.2018, 22:54  [ТС] 7
Я уже предположил, что возможно придется "поиграться" с директориями ресурсов, раз уж часть из них все же есть в исполняемом файле, но это конечно не слишком красивое решение.

Добавлено через 5 минут
Цитата Сообщение от Avazart Посмотреть сообщение
Подает по тому что пути нужно указывать правильно. Ясен фиг если указать левые пути он будет падать потому что библиотеки не находит.
Почему Вы решили, что пути неправильные?



А для путей к 5.10.0 такой результат:



Добавлено через 3 минуты
Цитата Сообщение от Humsterino Посмотреть сообщение
после деплоймента от windeployqt он выполняется
При замене библиотек с 5.10.0 на 5.8, иначе не находит точку входа.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.09.2018, 23:04 8
Цитата Сообщение от Humsterino Посмотреть сообщение
Почему Вы решили, что пути неправильные?
Потому что приложение падает?

Я уже не говорю о том что версия сборщика древняя она уже не собирает нифига, где Вы эту версию откопали не ясно.
0
1 / 1 / 2
Регистрация: 22.04.2015
Сообщений: 27
18.09.2018, 10:55  [ТС] 9
Цитата Сообщение от Avazart Посмотреть сообщение
По теме деплоя LibraryCollector
Не работает кнопка toolButtonLibs для выбора директории Qt: нет слота на клик по кнопке.

А так результат тот же, что и со старым коллектором. Буду дальше пробовать искать решение.

Добавлено через 27 минут
Попробовал деплоить новый пустой дефолтный проект Qt Quick Application:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <QGuiApplication>
#include <QQmlApplicationEngine>
 
int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
 
    QGuiApplication app(argc, argv);
 
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;
 
    return app.exec();
}
C++ (Qt)
1
2
3
4
5
6
7
8
9
import QtQuick 2.10
import QtQuick.Window 2.10
 
Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
}
Результат тот же:



Буду заново ставить Qt.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.09.2018, 12:19 10
Цитата Сообщение от Humsterino Посмотреть сообщение
Не работает кнопка toolButtonLibs для выбора директории Qt: нет слота на клик по кнопке.
А руками вписать слабо?

Добавлено через 32 секунды
Цитата Сообщение от Humsterino Посмотреть сообщение
Буду заново ставить Qt.
Вряд ли поможет.

Добавлено через 15 минут
Цитата Сообщение от Humsterino Посмотреть сообщение
А так результат тот же, что и со старым коллектором. Буду дальше пробовать искать решение.
Даже предположить не могу что Вы делаете не так.
0
1 / 1 / 2
Регистрация: 22.04.2015
Сообщений: 27
18.09.2018, 22:04  [ТС] 11
Снес с компа все, что было связано с Qt, поставил 5.11.1... Та же проблема с не найденной точкой входа.

В процессе гугления наткнулся на гайд: https://wiki.qt.io/Deploy_an_A... on_Windows
Последовал инструкции по "быстрому и грязному" деплою, и произошло чудо



Дальше вычищу все лишнее и сравню остаток с тем, что собирал windeployqt.
0
41 / 39 / 7
Регистрация: 21.05.2012
Сообщений: 198
18.09.2018, 23:26 12
Что-то из первого скриншота в посте не вижу что используется --qmldir опция, надо документацию читать, а не заниматься хренью.
0
18.09.2018, 23:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2018, 23:26
Помогаю со студенческими работами здесь

QT Creator/подключить QML/работать по id
Здравствуйте. Делаю проект с QML - будет и в других отчетах. Знаю что *.exe можно с опциями...

QML. Как обратиться к объекту, нарисованному в QT Creator
В &quot;обычном&quot; Qt - когда используется графический дизайнер QT Creator мы пишем ...

Qt вне qt creator
Работаю в линуксе, появлась проблема с qt creator &quot;задайте компилятор для сборки&quot; уже реально...

QT Creator падает при открытии файлов *.ui.qml - в дизайнере
Добрый день. При открытии в дизайнере файлов *.ui.qml - в которых есть скриптовые выражения среда...

Запустить .exe вне Qt Creator
Уже сделал как в https://www.youtube.com/watch?v=8qozxqSZQEg Не помогает все длл ложатся рядом а...

Qml list model изменение свойств элементов из вне
Здравствуйте, перейду сразу к делу, есть примерно такой код: CheckBox{ id: checkAll ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru