Evgenii Legotckoi
Evgenii LegotckoiНаурыз 7, 2016, 10:52 Т.Ж.

Qt WinAPI - Сабақ 003. DLL файлдарын құру үшін windeployqt пайдалану

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

Бейне оқулық

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

alex_lip
  • Қар. 19, 2018, 7:32 Т.Ж.

Добавьте в статью, что если используется Qml следует делать так -


For windeployqt there is the option --qmldir .

windeployqt --qmldir f:\myApp\sources f:\build-myApp\myApp.exe


Evgenii Legotckoi
  • Қар. 19, 2018, 12:53 Т.Қ.

Спасибо, добавил

А
  • Шілде 9, 2022, 12:32 Т.Қ.
  • (өңделген)

Тук-тук. Привет из прошлого! Не могли бы вы подробнее расказать о том, куда должна быть записана данная вставка "windeployqt --qmldir f:\myApp\sources f:\build-myApp\myApp.exe"? Я пробовал указать после пути распаковки .dll, но получаю ошибку.

C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin>windeployqt.exe c:\p\untitled.exe windeployqt --qmldir ...

f:\build-myApp\myApp.exe - это путь к .exe файлку, который я хочу открыть, я так понимаю, а первый что означает (f:\myApp\sources)? Это папка с релизом проекта или это папка с самим проектом (там где .pro-файл)? Заранее спасибо

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз
OI
  • Ora Iro
  • Жел. 24, 2024, 6:38 Т.Ж.

C++ - Тест 001. Первая программа и типы данных

  • Нәтиже:40ұпай,
  • Бағалау ұпайлары-8
AD

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:50ұпай,
  • Бағалау ұпайлары-4
m
  • molni99
  • Қаз. 26, 2024, 1:37 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:80ұпай,
  • Бағалау ұпайлары4
Соңғы пікірлер
ИМ
Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas5Шілде 5, 2024, 11:02 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
Evgenii Legotckoi
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
t
tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
NSProject
NSProjectМаусым 4, 2022, 3:49 Т.Ж.
Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
9
9AnonimҚаз. 25, 2024, 9:10 Т.Ж.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

Бізді әлеуметтік желілерде бақылаңыз