Не удалось запустить приложение Qt, так как не найден плагин & quot; windows & quot; каталог

Я знаю, что есть несколько ответов на эту проблему с Qt (как этот Qt 5.1.1: Не удалось запустить приложение, потому что плагин платформы "окна" пропал, отсутствует). Я использую Qt 5, но, похоже, эта проблема также в других версиях.

Принятый ответ не был моей проблемой, но, следуя ссылкам, решение для копирования каталога платформ в исполняемый файл работает нормально. Однако я нахожу это решение довольно неудовлетворительным, потому что это означает, что я должен распространять этот же каталог повсюду. В проекте мне нужно скопировать его в ветки Debug / Release для КАЖДОГО И КАЖДОГО проекта, который я создаю. Бег designer.exe У меня также есть эта проблема, поэтому я должен скопировать ее туда, и так далее.

Помещение каталога плагинов из моего каталога установки QT в PATH не решило проблему, хотя я не совсем понимаю, почему. Очевидно, есть некоторый пользовательский код, загружающий необходимые библиотеки плагинов.

Поэтому мне интересно, нет ли какого-либо приемлемого способа сделать это правильно, например, установить переменную QT_HOME или аналогичную, чтобы мне не приходилось копировать библиотеки DLL повсеместно.

2

Решение

Это плохая идея, чтобы собрать Qt самостоятельно, и в этом случае даже не стоит иметь статическую сборку. У вас есть несколько способов решить эту проблему:

Из документации:

All Qt programs automatically support the following command line options:
\list

\li \c{-platform} \e {platformName[:options]}, specifies the
\l{Qt Platform Abstraction} (QPA) plugin.

Overridden by the \c QT_QPA_PLATFORM environment variable.
\li \c{-platformpluginpath} \e path, specifies the path to platform
plugins.

Overridden by the \c QT_QPA_PLATFORM_PLUGIN_PATH environment
variable.

а также

void QCoreApplication :: addLibraryPath (const QString & путь) [статические]

Предопределяет путь к началу списка путей к библиотекам, гарантируя, что сначала выполняется поиск библиотек. Если путь пуст или уже находится в списке путей, список путей не изменяется.

Список путей по умолчанию состоит из одной записи — каталога установки плагинов. Каталог установки по умолчанию для плагинов — это INSTALL / plugins, где INSTALL — это каталог, в который был установлен Qt.

Смотрите также removeLibraryPath (), libraryPaths () и setLibraryPaths ().

В зависимости от вашего точного желания, это может быть решено так или иначе.

0

Другие решения

Попробуйте использовать QCoreApplication :: addLibraryPath (PATH TO PLUGIN FOLDER).

0

По вопросам рекламы [email protected]