Qt оқулықтарының бірінде бағдарламаны * Windows операциялық жүйесі жұмыс істейтін басқа компьютерлерде пайдалануға дайындау үшін жобада пайдаланылған барлық DLL құру жолы көрсетілген. * , енді мен сізге Qt бірге келетін қызметтік бағдарламамен танысуды ұсынамын. Бұл утилита windeployqt деп аталады және әдетте MinGW немесе MSVC. компиляторларымен бірге келетін консольдік қолданба болып табылады.
windeployqt пайдалану үшін оны консольден аргумент ретінде құрастырылған орындалатын қолданбаға жолды жіберу керек. Осыдан кейін windeployqt барлық қажетті кітапханаларды орындалатын файл орналасқан қалтаға жинайды.
windeployqt утилитасы bin қалтасында, ол өз кезегінде Qt компилятор қалтасында орналасқан. Осылайша, қалта жолы болуы мүмкін:
- MinGW үшін - C:\QT\5.5\mingw492_32\bin\windeployqt.exe
- MSVC үшін - C:\QT\5.5\msvc2013\bin\windeployqt.exe
Windeployqt-пен жұмыс істеу
Енді windeployqt жұмысына кірісейік. Сізде құрастырылған орындалатын файл бар делік және оның жұмыс істеуі үшін барлық қажетті DLL файлдарын құрастыру керек. Ол үшін кішкене дайындық жасап, орындалатын файлды жинауға дайындалған папкаға тасымалдаймыз. Мен демонстрация үшін EColor жобасын пайдаланамын, ол MinGW. арқылы жазылған. Жобаның орындалатын файлы келесі D:\EColor\EColor.exe жолында орналасады.
Осыдан кейін консольді ашу керек ( * cmd * ) және консольде windeployqt бар қалтаға өту керек. Содан кейін қызметтік бағдарламаны орындалатын файлдың орнын беру арқылы іске қосыңыз. төмендегі сурет.
Осыдан кейін қызметтік бағдарлама орындалатын файлдың жұмыс істеуі үшін қажетті барлық DLL файлдарын жинайды. Және бұл келесідей болады.
Мүмкін қателер
Айта кету керек, бәрі жеткілікті түрде тегіс бола бермейді. Мысалы, windeployqt, gcc компилятор кітапханаларын таппай, келесі қатені жіберуі мүмкін:
Cannot find GCC installation directory. g++.exe must be in the system path.
Бұл ортаның айнымалы мәндерін GCC және сәйкес кітапханаларды қамтитын қалта қалтасының жолына орнату арқылы емделеді.
Мұны істеу үшін біз келесі бағытта жүреміз (мысалы * ОЖ Windows 7 *):
Басқару тақтасы / Жүйе / Қосымша жүйе параметрлері / Ортаның айнымалылары
Содан кейін жүйелік айнымалыларға PATH айнымалы мәнін қосамыз, онда GCC және оның кітапханаларының жолдары жазылады. Менің жағдайда бұл келесідей көрінді:
- Айнымалы атауы: PATH
- Айнымалы мән: D:\AndroidQT\QT\5.5\mingw492_32\bin;D:\AndroidQT\QT\Tools\mingw492_32\bin;%PATH%
Содан кейін компьютерді қайта іске қосуды ұсынамын. Осыдан кейін қате жойылып, сәйкес кітапханалар орындалатын файлы бар қалтаға шығарылуы керек.
Windeployqt арқылы салынбауы мүмкін файлдар
Сондай-ақ, кейбір файлдар windeployqt көмегімен жасалмауы мүмкін, бұл қолданбаны шығарар алдында басқа компьютерде қарастырып, сынаған жөн.
Мысалы, EColor үшін DLL құру кезінде, windeployqt әлі де келесі файлдарды өткізіп жіберді:
- LIBEAY32.dll
- MSVCP90.dll
- MSVCR90.dll
- MSVCR120.dll
- ssleay32.dll
Егер жоба QML қолданса
UPD 19.11.2018 alex_lip :
Егер жоба QML қолданса, онда сізге --qmldir арнайы директивасын қосу керек
Бұл директива QML көздерін қайдан алуға болатынын көрсетуі керек
windeployqt --qmldir f:\myApp\sources f:\build-myApp\myApp.exe
Добавьте в статью, что если используется Qml следует делать так -
For windeployqt there is the option
--qmldir
.Спасибо, добавил
Тук-тук. Привет из прошлого! Не могли бы вы подробнее расказать о том, куда должна быть записана данная вставка "windeployqt --qmldir f:\myApp\sources f:\build-myApp\myApp.exe"? Я пробовал указать после пути распаковки .dll, но получаю ошибку.
f:\build-myApp\myApp.exe - это путь к .exe файлку, который я хочу открыть, я так понимаю, а первый что означает (f:\myApp\sources)? Это папка с релизом проекта или это папка с самим проектом (там где .pro-файл)? Заранее спасибо