Russian Qt Forum
Ноябрь 23, 2024, 14:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: exe вне Qt-Creator не запускается (требует dll)  (Прочитано 11096 раз)
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
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Декабрь 22, 2013, 12:36 »

Ты собрал свою программу с помощью версии 5.2?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #2 : Декабрь 22, 2013, 12:38 »

Отчитывайся.
1 Версии Qt, установленные на компьютере?
2 Версия Qt, с которой собрана программа?
3 Программа release или debug?
4 Пути к какой версии Qt прописаны на компьютере?
Записан
knotri
Гость
« Ответ #3 : Декабрь 22, 2013, 14:00 »

Итак, проблему с ошибкой решил, Qt 5, у себя запустил, скинул другу и не запустилось.
this application failed to start because it could not find or load the qt

Добавил папку плагин и  платформ(по англ, с правильным названием). Все равно не запускается.
Записан
Bepec
Гость
« Ответ #4 : Декабрь 22, 2013, 14:03 »

Молодец, продолжай думать дальше. По поиску поищи - тыщи три тем ты найдешь на эту тему Улыбающийся

PS меньше информации, дольше бегать Улыбающийся
Записан
knotri
Гость
« Ответ #5 : Декабрь 22, 2013, 14:10 »

да что искать то? Мне до пятницы все это сделать надо. У меня линукс в крови, этот виндовс бести крайне. Что делать уже вообще не представляю
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #6 : Декабрь 22, 2013, 14:33 »

да что искать то? Мне до пятницы все это сделать надо. У меня линукс в крови, этот виндовс бести крайне. Что делать уже вообще не представляю

http://qt-project.org/doc/qt-5.0/qtdoc/deployment-windows.html
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Декабрь 22, 2013, 14:44 »

еще проверь зависимости через dependency walker или тотал коммандер
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
knotri
Гость
« Ответ #8 : Декабрь 22, 2013, 15:18 »

Скачал dependencywalker, что ним проверять надо? Вроде все пути dll ведут только в ту папку которую я пытаюсь запустить на другом компе.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #9 : Декабрь 22, 2013, 15:39 »

Скачал dependencywalker, что ним проверять надо? Вроде все пути dll ведут только в ту папку которую я пытаюсь запустить на другом компе.
проверить что правильно лежит плагин платформы platforms\qwindows.dll и что ему хватает всех dll-ок
Записан
kvrus
Гость
« Ответ #10 : Декабрь 24, 2013, 13:32 »

Есть приложение
http://www.dependencywalker.com/
Оно составляет зависимости, которые требуются библиотекам и исполняемым файлам. Тебе нужно найти те либы, которые нужны твоему ехе и докинуть их в дирректрию вместе с ехе. В таком виде можешь рассылать свое приложение.
У меня в практике были подобные проблеммы, потому что креатор сам когда то собранный под Qt, сам нуждается в подобных библиотеках (они так же у него лежат где-то рядом с ехе). И при сборке проекта он по случайности может собрать с использованием библиотек не тех что в СДК а тех что у него. Тогда получается несоответствие версий библиотек на которых ваш проект собран и библиотек на которых вы пытаетесь его запустить.
Тут совет один, надо быть очень аккуратным при сборке проекта.
Записан
Bepec
Гость
« Ответ #11 : Декабрь 24, 2013, 15:40 »

Кстати депендети не может вычленить плагинную систему Qt Улыбающийся
Записан
Serr500
Гость
« Ответ #12 : Декабрь 24, 2013, 21:41 »

А как он её вычленит, если у неё связи с либами не прописаны в секции импорта DLL? Плагинная система построена по совершенно другому принципу. Qt при запуске программы лазит по некоторым заранее определённым каталогам и ищет там свои плагины-dll. Что нашёл, то пытается загрузить. А загрузка может и не получиться, к примеру, плагин сам зависит от какой-то отсутствующей либы. Фактически генерируется имя либы и производится попытка её загрузки. Поэтому ни один анализатор зависимостей не вычленит зависимости такого вида, они зашиты глубоко в коде. На самом деле, имя при таком методе мы вообще можем с потолка взять сгенерировать случайным образом.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.134 секунд. Запросов: 23.