Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
1

.exe и дальнейшее использование программы

16.07.2019, 14:39. Просмотров 1144. Ответов 14
Метки нет (Все метки)

Доброго времени суток!
Для работы программы нужно обязательное использование динамических библиотек к примеру QT5Widgetsd.DLL.
В дальнейшем, чтобы программа работала всегда и везде, необходимо все dll файлы закидывать в файл с программой?
Кроме dll которые запрашивает программа при запуске у меня, будет ли она что-то еще требовать на других ПК?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2019, 14:39
Ответы с готовыми решениями:

Ввод числа и дальнейшее использование
Помогите пожалуйста. Вот текст MOV ah, 01 ;ввожу одно число с клавиатуры и помещаю его в...

Получение капчи и дальнейшее использование
Уже часов 5 себе мозг "имею". Как получить капчу на регистрацию отсюда :...

Определение значения через if и дальнейшее использование
День добрый. Только учусь C#. В работе нуждаюсь в программе, решил ее написать. Столкнулся с...

Android x86 Установка и дальнейшее использование
Устанавливаю упомянутую выше систему, после этого не могу делать скриншоты и ставить программы, т.к...

Внедрение в базу и дальнейшее использование файла
Доброго, уважаемые. Необходимо сделать базу данных, которая при старте запустит Exe файл. Т.е....

14
Vourhey
Почетный модератор
6572 / 2337 / 198
Регистрация: 29.07.2006
Сообщений: 12,701
16.07.2019, 15:38 2
Цитата Сообщение от MetMark Посмотреть сообщение
В дальнейшем, чтобы программа работала всегда и везде, необходимо все dll файлы закидывать в файл с программой?
Рядом положить и таскать с программой.
Цитата Сообщение от MetMark Посмотреть сообщение
Кроме dll которые запрашивает программа при запуске у меня, будет ли она что-то еще требовать на других ПК?
Нет. Но там не одна dll, а несколько. Ну, и нужно не забывать про сам С++ ранйтам. Его можно статически, правда.
0
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
16.07.2019, 16:11  [ТС] 3
Цитата Сообщение от Vourhey Посмотреть сообщение
С++ ранйтам
Это шо такое?
0
Vourhey
Почетный модератор
6572 / 2337 / 198
Регистрация: 29.07.2006
Сообщений: 12,701
16.07.2019, 16:48 4
Реализация стандартной библиотеки. Где-то же должен находиться код, который делает тот самый std::cout<<"hello world"; работающим, как ожидается.
0
16.07.2019, 16:48
Анна по жизни
270 / 161 / 60
Регистрация: 13.03.2019
Сообщений: 396
16.07.2019, 21:10 5
Лучший ответ Сообщение было отмечено MetMark как решение

Решение

MetMark,
Цитата Сообщение от MetMark Посмотреть сообщение
к примеру QT5Widgetsd.DLL
Обрати внимание на букву d в конце имени файла. Это библиотека для отладочной сборки. Для релиза нужны .dll без суффикса -d.
Вот тебе в помощь https://doc.qt.io/qt-5/windows-deployment.html#
1
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
16.07.2019, 21:18  [ТС] 6
Анна по жизни, Ооо, точно, еще же релиз есть. А если я всем буду тыкать приложение из отладочной сборки а не из релизной? В чем отличие та для пользователя, та и для меня как программиста?
0
Rius
Эксперт .NET
6012 / 3870 / 936
Регистрация: 25.05.2015
Сообщений: 11,752
Записей в блоге: 12
Завершенные тесты: 4
16.07.2019, 22:54 7
Цитата Сообщение от MetMark Посмотреть сообщение
А если я всем буду тыкать приложение из отладочной сборки а не из релизной? В чем отличие та для пользователя, та и для меня как программиста?
Вас пошлют далеко-далеко...
Потому что отладочные библиотеки весят намнООООго больше.
0
bubus
1 / 1 / 0
Регистрация: 01.10.2015
Сообщений: 19
18.07.2019, 00:02 8
1) идёте в папку с собранным *.exe файлом.
2) копируете путь не к файлу, а к папке, где находится этот файл из п.1
3) запускаете "командную строку Qt (с нужным вам компилятором.. там их может быть несколько)" через меню "Пуск".
4) с помощью команды cd /d <путь из п.2> в открывшейся консоли переходите в папку с собранным *.exe
5) выполняете windeployqt.exe .
6) готово. Все нужные *.dll скопируются в папку с исполняемым файлом.
Ответ с тостера
0
Rius
Эксперт .NET
6012 / 3870 / 936
Регистрация: 25.05.2015
Сообщений: 11,752
Записей в блоге: 12
Завершенные тесты: 4
18.07.2019, 00:19 9
bubus, КЭП, всё описано там: https://doc.qt.io/qt-5/windows-deployment.html#
И про рантайм библиотеки вы забыли.
0
bubus
1 / 1 / 0
Регистрация: 01.10.2015
Сообщений: 19
18.07.2019, 00:29 10
Rius, коротко и на русском, может кому пригодится)
0
Rius
Эксперт .NET
6012 / 3870 / 936
Регистрация: 25.05.2015
Сообщений: 11,752
Записей в блоге: 12
Завершенные тесты: 4
18.07.2019, 06:11 11
Ещё короче:
GUI приложение на Qt. Всегда ли нужно таскать с собой dll файлы?
copy, paste, edit, run.

Добавлено через 1 минуту
Перенос приложения на другой ПК
0
Анна по жизни
270 / 161 / 60
Регистрация: 13.03.2019
Сообщений: 396
18.07.2019, 10:27 12
Rius, я вот с такой проблемой столкнулась:
Bash
1
windeployqt --compiler-runtime ...
пишет, что не находит файлов в каталоге c:\Program Files\Microsoft Visual Studio 10.0\VC\redist.
Конечно, не находит. Они глубже лежат.
Не знаете, можно ли с этим что-то сделать?
0
Rius
Эксперт .NET
6012 / 3870 / 936
Регистрация: 25.05.2015
Сообщений: 11,752
Записей в блоге: 12
Завершенные тесты: 4
18.07.2019, 13:51 13
Создать bat, который я привёл по ссылке GUI приложение на Qt. Всегда ли нужно таскать с собой dll файлы?
Указать правильные пути.
Запустить.

Добавлено через 2 минуты
Visual Studio не нужна. Файлы берутся не откуда-то глубже, а из отдельно устанавливаемого комплекта.

Добавлено через 7 минут
Если запускать из консоли разработчика VS2017, то windeloyqt обратится-таки к каталогу VS (через %VCINSTALLDIR%) и добавит в выходной каталог ещё и vc_redist.exe

Добавлено через 40 минут
Вот, например, комплект Qt установлен
.exe и дальнейшее использование программы

в каталог c:\Qt\5.13.0\msvc2017_64\
.exe и дальнейшее использование программы

Создан файл
Windows Batch file
1
2
3
4
5
6
set destination=R:\lic\
set source=d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output\
xcopy %source%lcd-image-converter.exe %destination% /y
xcopy .\sources\resources\font.tmpl %destination% /y
xcopy .\sources\resources\image.tmpl %destination% /y
c:\Qt\5.13.0\msvc2017_64\bin\windeployqt --release --force --compiler-runtime %destination%lcd-image-converter.exe
Запускаем из консоли разработчика VS 2017 и видим
Кликните здесь для просмотра всего текста
Код
d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output>deploy.bat

d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output>set destination=R:\lic\

d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output>set source=d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output\

d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output>xcopy d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output\lcd-image-converter.exe R:\lic\ /y
D:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output\lcd-image-converter.exe
Скопировано файлов: 1.

d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output>xcopy .\sources\resources\font.tmpl R:\lic\ /y
Не найден файл: font.tmpl
Скопировано файлов: 0.

d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output>xcopy .\sources\resources\image.tmpl R:\lic\ /y
Не найден файл: image.tmpl
Скопировано файлов: 0.

d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output>c:\Qt\5.13.0\msvc2017_64\bin\windeployqt --release --force --compiler-runtime R:\lic\lcd-image-converter.exe
R:\lic\lcd-image-converter.exe 64 bit, release executable [QML]
Direct dependencies: Qt5Core Qt5Gui Qt5Network Qt5Qml Qt5Svg Qt5Widgets Qt5Xml Qt5XmlPatterns
All dependencies   : Qt5Core Qt5Gui Qt5Network Qt5Qml Qt5Svg Qt5Widgets Qt5Xml Qt5XmlPatterns
To be deployed     : Qt5Core Qt5Gui Qt5Network Qt5Qml Qt5Svg Qt5Widgets Qt5Xml Qt5XmlPatterns
Updating Qt5Core.dll.
Updating Qt5Gui.dll.
Updating Qt5Network.dll.
Updating Qt5Qml.dll.
Updating Qt5Svg.dll.
Updating Qt5Widgets.dll.
Updating Qt5Xml.dll.
Updating Qt5XmlPatterns.dll.
Updating libGLESV2.dll.
Updating libEGL.dll.
Updating d3dcompiler_47.dll.
Updating opengl32sw.dll.
Updating vc_redist.x64.exe.
Patching Qt5Core.dll...
Updating qgenericbearer.dll.
Updating qsvgicon.dll.
Updating qgif.dll.
Updating qicns.dll.
Updating qico.dll.
Updating qjpeg.dll.
Updating qsvg.dll.
Updating qtga.dll.
Updating qtiff.dll.
Updating qwbmp.dll.
Updating qwebp.dll.
Updating qwindows.dll.
Updating qwindowsvistastyle.dll.
Creating qt_ar.qm...
Creating qt_bg.qm...
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_da.qm...
Creating qt_de.qm...
Creating qt_en.qm...
Creating qt_es.qm...
Creating qt_fi.qm...
Creating qt_fr.qm...
Creating qt_gd.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_pl.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm...
Creating qt_zh_TW.qm...

d:\Projects\Desktop\lcd-image-converter\build-lcd-image-converter-Desktop_Qt_5_13_0_MSVC2017_64bit-Release\release\windows\output>
1
Анна по жизни
270 / 161 / 60
Регистрация: 13.03.2019
Сообщений: 396
18.07.2019, 18:26 14
Спасибо, но ценность вашего батника для меня весьма условна.

Цитата Сообщение от Rius Посмотреть сообщение
Visual Studio не нужна. Файлы берутся не откуда-то глубже, а из отдельно устанавливаемого комплекта.
Ну, это вы windeployqt скажите, что студия не нужна. Он сам туда лезет. Скорей всего за vcredist. Только нет его там, куда он лезет.
И при запуске из консоли студии происходит то же самое. По крайней мере для msvs 2010.
0
Rius
Эксперт .NET
6012 / 3870 / 936
Регистрация: 25.05.2015
Сообщений: 11,752
Записей в блоге: 12
Завершенные тесты: 4
18.07.2019, 20:03 15
Не нужна в том смысле, что эта зависимость не обязательная. Если запускать из не настроенного терминала, windeployqt пишет про то, что не найдена переменная VCINSTALLDIR и всё, работает дальше, это не фатальная ошибка.
2010 у меня нет, не проверить. С 2017 работает. Лезет туда только за redist.
Батник это просто пример команд. Их можно и вручную ввести.

Добавлено через 37 минут
Попробуйте запустить не из консоли Visual Studio, должно сообщить об отсутствии переменной VCINSTALLDIR и продолжить дальше.
Qt у меня 5.12 и 5.13. Может в вашей 5.5 как-то иначе было.
0
18.07.2019, 20:03
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2019, 20:03

Динамическое клонирование полей формы и их дальнейшее использование
Здравствуйте. Есть необходимость динамического склонирования элементов формы. Есть форма. есть три...

Запуск Командной строки от имени администратора и дальнейшее её использование
Всем привет! Сделал ярлык, который запускает командную строку от имени администратора, в батнике...

выбор нужных строк из регистра сведений и дальнейшее их использование
Здравствуйте!Помогите, пожалуйста! конфигурация Бухгалтерия предприятия у меня есть регистр...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru