Путь к плагину Qt и WOW64
Мы пытаемся настроить систему разработки / исполнения Qt для наших пользователей на работе. Это должно позволить им создавать и / или запускать 32-битное или 64-битное приложение Qt по своему усмотрению (на той же машине).
Проблема в том, что если мы ничего не делаем, пользователь получает страшное сообщение: "Это приложение не удалось запустить, потому что он не мог найти или загрузить диалоговое окно" Windows "плагина платформы Qt". Даже готовые исполняемые файлы, такие как конструктор, дают вам это.
Единственный способ исправить это - добавить файл qt.conf, указывающий на правильный каталог плагинов для битрейта этого исполняемого файла, или скопировать правильную иерархию каталогов "плагинов" под каталогом исполняемого файла. Мы можем сделать это с помощью пользовательских правил сборки Visual Studio, но это основная PITA. Кажется, должен быть способ сделать это глобально.
Я попытался установить переменную среды QT_PLUGIN_PATH в%ProgramFiles%\Qt\Plugins, но она работает только для 64-битных EXE-файлов. По какой-то причине даже 32-битные EXE-файлы расширяют% ProgramFiles% до "C:\Program Files\". Насколько я могу судить, Qt ничего не проверяет в HKEY_LOCAL_MACHINE\SOFTWARE, поэтому я не могу перенаправить таким образом.
Кажется, должен быть способ сделать это. Есть?
1 ответ
Решение, которое я наконец нашел, заключалось в использовании перенаправления файлов Windows %windir%\system32
, который не находится под контролем исполняемого файла. Это включает в себя:
- установка QT_PLUGIN_PATH в
%windir%\system32\Qt-plugins
- скопировать 64-битную версию каталога Qt plugins\platform в%windir%\system32\Qt-plugins\
- копирование 32-битной версии каталога Qt plugins\platform в%windir%\sysWOW64\Qt-plugins\
Очевидно, что установщик приложения также должен выполнить эти шаги.