Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: knotri от Декабрь 22, 2013, 12:23



Название: exe вне Qt-Creator не запускается (требует dll)
Отправлено: knotri от Декабрь 22, 2013, 12:23
Нужно получить exe который работал бы на компах на которых вообще нет Qt.
П.С. при попытки скинуть все нужные dll в папку с exe он запустился но сразу падает с какой то ошибкой.
Код:
Имя события проблемы:	APPCRASH
  Имя приложения: brain_game.exe
  Версия приложения: 0.0.0.0
  Отметка времени приложения: 52b67bd6
  Имя модуля с ошибкой: Qt5Core.dll
  Версия модуля с ошибкой: 5.2.0.0
  Отметка времени модуля с ошибкой: 52a4b332
  Код исключения: c0000005
  Смещение исключения: 0022a1a2
  Версия ОС: 6.1.7600.2.0.0.256.1
  Код языка: 1049
  Дополнительные сведения 1: 0a9e
  Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
  Дополнительные сведения 3: 0a9e
  Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: kambala от Декабрь 22, 2013, 12:36
Ты собрал свою программу с помощью версии 5.2?


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: Bepec от Декабрь 22, 2013, 12:38
Отчитывайся.
1 Версии Qt, установленные на компьютере?
2 Версия Qt, с которой собрана программа?
3 Программа release или debug?
4 Пути к какой версии Qt прописаны на компьютере?


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: knotri от Декабрь 22, 2013, 14:00
Итак, проблему с ошибкой решил, Qt 5, у себя запустил, скинул другу и не запустилось.
this application failed to start because it could not find or load the qt

Добавил папку плагин и  платформ(по англ, с правильным названием). Все равно не запускается.


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: Bepec от Декабрь 22, 2013, 14:03
Молодец, продолжай думать дальше. По поиску поищи - тыщи три тем ты найдешь на эту тему :)

PS меньше информации, дольше бегать :)


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: knotri от Декабрь 22, 2013, 14:10
да что искать то? Мне до пятницы все это сделать надо. У меня линукс в крови, этот виндовс бести крайне. Что делать уже вообще не представляю


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: Alex Custov от Декабрь 22, 2013, 14:33
да что искать то? Мне до пятницы все это сделать надо. У меня линукс в крови, этот виндовс бести крайне. Что делать уже вообще не представляю

http://qt-project.org/doc/qt-5.0/qtdoc/deployment-windows.html


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: kambala от Декабрь 22, 2013, 14:44
еще проверь зависимости через dependency walker или тотал коммандер


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: knotri от Декабрь 22, 2013, 15:18
Скачал dependencywalker, что ним проверять надо? Вроде все пути dll ведут только в ту папку которую я пытаюсь запустить на другом компе.


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: alex312 от Декабрь 22, 2013, 15:39
Скачал dependencywalker, что ним проверять надо? Вроде все пути dll ведут только в ту папку которую я пытаюсь запустить на другом компе.
проверить что правильно лежит плагин платформы platforms\qwindows.dll и что ему хватает всех dll-ок


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: kvrus от Декабрь 24, 2013, 13:32
Есть приложение
http://www.dependencywalker.com/
Оно составляет зависимости, которые требуются библиотекам и исполняемым файлам. Тебе нужно найти те либы, которые нужны твоему ехе и докинуть их в дирректрию вместе с ехе. В таком виде можешь рассылать свое приложение.
У меня в практике были подобные проблеммы, потому что креатор сам когда то собранный под Qt, сам нуждается в подобных библиотеках (они так же у него лежат где-то рядом с ехе). И при сборке проекта он по случайности может собрать с использованием библиотек не тех что в СДК а тех что у него. Тогда получается несоответствие версий библиотек на которых ваш проект собран и библиотек на которых вы пытаетесь его запустить.
Тут совет один, надо быть очень аккуратным при сборке проекта.


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: Bepec от Декабрь 24, 2013, 15:40
Кстати депендети не может вычленить плагинную систему Qt :)


Название: Re: exe вне Qt-Creator не запускается (требует dll)
Отправлено: Serr500 от Декабрь 24, 2013, 21:41
А как он её вычленит, если у неё связи с либами не прописаны в секции импорта DLL? Плагинная система построена по совершенно другому принципу. Qt при запуске программы лазит по некоторым заранее определённым каталогам и ищет там свои плагины-dll. Что нашёл, то пытается загрузить. А загрузка может и не получиться, к примеру, плагин сам зависит от какой-то отсутствующей либы. Фактически генерируется имя либы и производится попытка её загрузки. Поэтому ни один анализатор зависимостей не вычленит зависимости такого вида, они зашиты глубоко в коде. На самом деле, имя при таком методе мы вообще можем с потолка взять сгенерировать случайным образом.