Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сброка проекта qt5
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
pharret31
Доброго времени суток!

У меня приключилась беда: проект готов, но банально выпустить не могу - не знаю как его собрать. Собрать его статически не выходит - руки не оттуда растут. Но это не принципиально.
Решаю собрать его киданием библиотек в папку с программой, но она оказалось очень ненасытной(скинул 14 dll-файлов). В итоге все извращенства не помогли:

Цитата
точка входа в процедуру ?roleNames@QAbstractItemModel@@UBE?AV?$QHash@HVQByteArray@@@@XZ не найдена в библиотеке DLL Qt5Core.dll


Прошу помощи в сборке. :help:
Litkevich Yuriy
может у тебя приложение собрано в отладочном режиме? Тогда библиотеки тебе нужны с буковкой d на конце
pharret31
Цитата(Litkevich Yuriy @ 26.8.2013, 5:43) *
может у тебя приложение собрано в отладочном режиме? Тогда библиотеки тебе нужны с буковкой d на конце


нет, приложение было собрано в режиме release.

Было найдено рабочее решение, поэтому вопрос отменяется :rolleyes: :
Как отучить Qt 5.1 от *.dll (статическая линковка)
rich
Та же проблема:
Цитата
Точка входа в процедуру __cxa_throw_bad_array_new_length не найдена в библиотеке DLL <Путь к exe файлу>\Qt5Core.dll.

Приложение собирается в qtcreator`е.
Qt 5.3 MinGW32bit-Release.

Запускаю windeployqt.exe который собирает все dll`ки. Получается так:
Раскрывающийся текст

Adding Qt5Svg for qsvgicon.dll
Direct dependencies: Qt5Core Qt5Gui Qt5Widgets
All dependencies : Qt5Core Qt5Gui Qt5Widgets
To be deployed : Qt5Core Qt5Gui Qt5Svg Qt5Widgets
Updating Qt5Core.dll.
Updating Qt5Gui.dll.
Updating Qt5Svg.dll.
Updating Qt5Widgets.dll.
Updating libGLESV2.dll.
Updating libEGL.dll.
Updating D3Dcompiler_47.dll.
Updating opengl32sw.dll.
Updating libgcc_s_dw2-1.dll.
Updating libstdc++-6.dll.
Updating libwinpthread-1.dll.
Patching Qt5Core.dll...
Creating directory iconengines.
Updating qsvgicon.dll.
Creating directory imageformats.
Updating qdds.dll.
Updating qgif.dll.
Updating qicns.dll.
Updating qico.dll.
Updating qjp2.dll.
Updating qjpeg.dll.
Updating qmng.dll.
Updating qsvg.dll.
Updating qtga.dll.
Updating qtiff.dll.
Updating qwbmp.dll.
Updating qwebp.dll.
Creating directory platforms.
Updating qwindows.dll.
Creating translations...
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_de.qm...
Creating qt_en.qm...
Creating qt_fi.qm...
Creating qt_fr.qm...
Creating qt_he.qm...
Creating qt_hu.qm...
Creating qt_it.qm...
Creating qt_ja.qm...
Creating qt_ko.qm...
Creating qt_lv.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm...

Но это на рабочем windows, на тестовой где ничего не установлено другое сообщение. См. вложение.
ViGOur
По моему это можно решить проще, запустить Dependency Walker, посмотреть какие библиотеки требуются и положить их рядом с твоим приложением.
После чего уже пробовать на тестовом компьютере запустить. Обычно все работает без проблем!
rich
Цитата(ViGOur @ 21.10.2015, 14:43) *
По моему это можно решить проще, запустить Dependency Walker, посмотреть какие библиотеки требуются и положить их рядом с твоим приложением.
После чего уже пробовать на тестовом компьютере запустить. Обычно все работает без проблем!

Не, проще запустить windeployqt что бы он сам всё сделал :)

Dependency Walker говорит что нет ieshims.dll

dll hell :search:

Собрал статично - работает. Но Dependency Walker всё равно говорит что нет ieshims.dll
wiz29
deployqt утилита имела целый букет проблем при пакетировании приложения для OS X. Если говорить о Qt4.8.x.
Сомневаюсь, что она стала сильно продвинутой в Qt5.5 для WIN, чтоб деплоить под виндой относительно сложные программы.

Dependency Walker отлично помогает при сборке пакетов на WIN.
LordMiller
Никаких дополнительных утилит и программ не нужно!
Qt-Creater показывает какие dll подключаются к приложению
Открываешь свое приложение, переходишь в режим отладки, справа будет кнопка обзоры, ставишь галочку на модули
Запускаешь свое приложение в режиме ОТЛАДКИ!
В окне модули будут появляться все библиотеки используемые программой. Многие библиотеки подключаются динамически, то есть например, если ты в своей программе подключаешься к базе по кнопке,
то и модуль в списке появится после нажатия.
В столбце путь к модулю указаны пути к библиотеке. Брать библиотеки из папки C:\Windows не нужно, берешь только QT-ешные
Если в модуле указано что используется плагин ( например C:\Qt\5.5\mingw492_32\plugins\platforms\qwindows.dll ), то ты должен положить рядом с приложением папку с плагином
(в примере это будет папка platforms\qwindows.dll)

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.