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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [РЕШЕНО]Требуемые файлы для запуска программы  (Прочитано 19883 раз)
eXeLe
Гость
« : Март 11, 2013, 15:16 »

Qt5 с mingw4.7, QtCreator 2.6
Написал программку Qt Gui, через крейтер запускается отлично, переключаюсь на "Release", компилирую.
Пробую запускать из папки с программой - хочет dll-ок.
Кидаю ей:
D3DCompiler_43.dll
icudt49.dll
icuin49.dll
icuuc49.dll
libgcc_s_sjlj-1.dll
libGLESv2.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Sql.dll
Qt5Widgets.dll

Дллки брал тут: %путь_к_Qt%\Qt5.0.1\5.0.1\mingw47_32\bin
Так же в корне каталога со своей прогой создал папку sqldrivers и скинул туда все содержимое: %путь_к_Qt%\Qt5.0.1\5.0.1\mingw47_32\plugins\sqldrivers (дрова odbc)

Но вместо запуска, прога начинает ругаться на:

Цитировать
Microsoft Visual C++ Runtime Library

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
К сожалению, это дает мало понимания того, в чем же осталась проблема?
Были мысли, что дллки беру не оттуда, но только в %путь_к_Qt%\Qt5.0.1\5.0.1\mingw47_32\bin есть все, что нужно проге.
« Последнее редактирование: Март 11, 2013, 16:00 от eXeLe » Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #1 : Март 11, 2013, 15:26 »

http://www.prog.org.ru/topic_24263_0.html
Записан
eXeLe
Гость
« Ответ #2 : Март 11, 2013, 15:28 »

там о 10-й студии речь.
я сразу указал, что mingw у меня.
на всякий случай попробовал скопировать platforms - реакции ноль
« Последнее редактирование: Март 11, 2013, 15:30 от eXeLe » Записан
alexis031182
Гость
« Ответ #3 : Март 11, 2013, 15:31 »

В списке не хватает "platforms/qwindows.dll". Для mingw оно тоже нужно.
Записан
eXeLe
Гость
« Ответ #4 : Март 11, 2013, 15:32 »

да, по совету выше все же скопировал каталог platforms к себе.
лучше не стало, но раз нужно - пусть будет =)
Записан
eXeLe
Гость
« Ответ #5 : Март 11, 2013, 15:59 »

погуглил еще усерднее на тему "qt5 mingw dependencies"
среди перекрестных ссылок между темами различных форумов набрел на требование libEGL.dll, которое никак не указывается программой, как нехватающая ДЛЛка.
Записан
alexis031182
Гость
« Ответ #6 : Март 11, 2013, 17:39 »

Да, egl тоже обязательно.
Записан
Bepec
Гость
« Ответ #7 : Март 11, 2013, 19:30 »

Qt5 вообще построена на противоречиях Веселый Я  целых 20 минут искал и думал, почему ж прога не запускается ) А там всего то была дллка, цепляющаяся динамически (тот самый platforms). Почему сделано так - непонятно. Вероятно от великого желания соблюсти стандарт плагинов Веселый
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Март 11, 2013, 20:07 »

зачем сидеть думать, если есть тотал коммандер и 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
Bepec
Гость
« Ответ #9 : Март 11, 2013, 21:14 »

Как вы, милостивый государь, отследите динамически подключающуюся дллку? Улыбающийся

Да, depends её не видит. Да, её нет в зависимостях exe. Да, программа не падает, просто не запускается.

PS так же можно попытаться отследить зависимость от openssl. Та же фигня с плагинами имейджев и драйверов sql Веселый
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Март 11, 2013, 21:36 »

QtCore, QtGui и т.п. тоже ведь динамически цепляются, так что ты какую-то неверную терминологию используешь
Записан

Изучением 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
twp
Гость
« Ответ #11 : Март 11, 2013, 21:38 »

лол, как это не видит? Может имеется ввиду плагин? Тогда нужно смотреть вывод приложения в консоль - наверняка приложение ругнется что не загружен плагин.
Записан
Bepec
Гость
« Ответ #12 : Март 11, 2013, 21:53 »

Увы, нет, не видит. Он видит слинкованные библиотеки и зависимости. А плагины Qt подгружаются динамически. Используется Qt-шная система плагинов. Т.е. там прямо в коде динамически вытаскиваются функции и объекты. Можно посмотреть на примере других любых плагинов.
Записан
twp
Гость
« Ответ #13 : Март 11, 2013, 22:50 »

плагин конечно не видит, на то он и плагин, но ты ведь указал, что не видит зависимости от dll, таких как QtCore или QtGui.
Вот что выдает для дизайнера в убунте:
Цитата: Terminal
sergiy@vmware:~$ ldd /usr/local/Qt-5.0.1/bin/designer
   linux-gate.so.1 =>  (0xb76e7000)
   libQt5DesignerComponents.so.5 => /usr/local/Qt-5.0.1/lib/libQt5DesignerComponents.so.5 (0xb73d8000)
   libQt5PrintSupport.so.5 => /usr/local/Qt-5.0.1/lib/libQt5PrintSupport.so.5 (0xb737e000)
   libQt5Designer.so.5 => /usr/local/Qt-5.0.1/lib/libQt5Designer.so.5 (0xb6e0e000)
   libQt5Widgets.so.5 => /usr/local/Qt-5.0.1/lib/libQt5Widgets.so.5 (0xb6761000)
   libQt5Network.so.5 => /usr/local/Qt-5.0.1/lib/libQt5Network.so.5 (0xb6632000)
   libQt5Xml.so.5 => /usr/local/Qt-5.0.1/lib/libQt5Xml.so.5 (0xb65ea000)
   libQt5Gui.so.5 => /usr/local/Qt-5.0.1/lib/libQt5Gui.so.5 (0xb614d000)
   libQt5Core.so.5 => /usr/local/Qt-5.0.1/lib/libQt5Core.so.5 (0xb5c56000)
   ...
Что-то подобное должно быть и на винде.
Записан
Bepec
Гость
« Ответ #14 : Март 12, 2013, 06:58 »

Кхм. Нигде я не писал, что он не видит QtCore с которым он слинкован Улыбающийся

Я и писал про плагины, которые являются файлами, надо же, динамических библиотек аля qgif4.dll и прочая Веселый Зависимости можно отследить только те, что слинкованы с проектом.

Для плагинов же используется обычное дёрганье по имени, вытаскивание объекта или функций. Это отследить невозможно сразу, т.е. зависимости эти можно увидеть только отслеживая обращения к диску Веселый

Собственно именно на это ушли мои 20 минут. Веселый

PS в принципе плагины хорошо, но такие как из каталога platforms - это бред. Нигде про них особо не упомянуто, в проекте их увидеть нереально. (ну или я не обращал внимания) Т.е. ты не узнаешь об этой зависимости и будешь много думать, запустив прогу на виртуалке и недоумевая, почему ничего не работает Веселый
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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