Разрабатывая приложения на Qt, во время развертывания продукта, приходится копировать все
Вот какая структура папки с продуктом в начале:
dll
файлы, от которых он (продукт) зависит, в каталог с исполняемым файлом. Хорошо было бы создать папку и поместить туда все эти библиотеки. Используя механизм, так называемых частных сборок, можно добиться желаемого результата.
Вот какая структура папки с продуктом в начале:
downloads / downloads.exe downloads.ini libgcc_s_dw2-1.dll libstdc++-6.dll mingwm10.dll QtCore4.dll QtGui4.dll QtNetwork4.dllНеобходимо изменить её следующим образом:
downloads / downloads.exe downloads.ini share / libgcc_s_dw2-1.dll libstdc++-6.dll mingwm10.dll QtCore4.dll QtGui4.dll QtNetwork4.dllПри таких изменениях приложение не запустится. Чтобы исправить ситуацию нужно создать два файла манифеста, а именно:
downloads / downloads.exe downloads.ini downloads.exe.manifest share / libgcc_s_dw2-1.dll libstdc++-6.dll mingwm10.dll QtCore4.dll QtGui4.dll QtNetwork4.dll share.manifestСодержимое файла
downloads.exe.manifest
:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> <dependency> <dependentAssembly> <assemblyIdentity type='win32' name='share' version='1.0.0.0' processorArchitecture='x86' /> </dependentAssembly> </dependency> </assembly>Содержимое файла
share.manifest
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <noInheritable/> <assemblyIdentity type="win32" name="share" version="1.0.0.0" processorArchitecture="x86" /> <file name="libgcc_s_dw2-1.dll" /> <file name="libstdc++-6.dll" /> <file name="mingwm10.dll" /> <file name="QtCore4.dll" /> <file name="QtGui4.dll" /> <file name="QtNetwork4.dll" /> </assembly>Удачи!
Комментариев нет:
Отправить комментарий