Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Igors от Июль 06, 2014, 11:29



Название: Failed to load platform plugin "windows" [решено]
Отправлено: Igors от Июль 06, 2014, 11:29
Добрый день

После старта приложения, при создании QApplication либа qwindows(d).dll ищется по пути вбитому в базовую dll, (напр C:\Qt\5.2.0\msvc2012\plugins\platforms\qwindows.dll), в результате приложение не грузится при переносе на др машину. Путь можно изменить с помощью qApp->libraryPath() и qApp->setLibraryPath().  

В гугле масса ответов - но ни один из них не работает. Напр http://habrahabr.ru/post/188816/ (http://habrahabr.ru/post/188816/). Начало очень хорошее, я сам убедился что это не проходит. Но увы, рецепт автора у меня тоже не бычит  :'( И у меня нет никаких sql, просто приложение под Вындоуз.

Скопировал qwindows.dll рядом с exe и сделал setLibraryPath(<GetModuleFileName>) - не проходит. Еще пробовал прилинковать qwindows.lib, ничего не дает. Сейчас разбираюсь по исходникам, тяжело.

Спасибо


Название: Re: Failed to load platform plugin "windows"
Отправлено: Old от Июль 06, 2014, 11:33
А если положить рядом с exe в директорию platforms?


Название: Re: Failed to load platform plugin "windows"
Отправлено: Bepec от Июль 06, 2014, 11:44
Только так, как предложил Old.
В Qt5 используется система наподобие плагинов :) Таким образом механизм поиска забит у него внутри :D


Название: Re: Failed to load platform plugin "windows"
Отправлено: Igors от Июль 06, 2014, 12:01
Да, hard-coded
Код:
Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
    (QPlatformIntegrationFactoryInterface_iid, QLatin1String("/platforms"), Qt::CaseInsensitive))
С фолдером platforms бычит

Спасибо



Название: Re: Failed to load platform plugin "windows"
Отправлено: Old от Июль 06, 2014, 12:04
Да, hard-coded
Описанный в документации.


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Bepec от Июль 06, 2014, 12:37
И вот за это я пятёрку и не люблю :D Какие то ограничения создаются непонятные и криво выглядящие :D


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Old от Июль 06, 2014, 12:47
И вот за это я пятёрку и не люблю :D Какие то ограничения создаются непонятные и криво выглядящие :D
В четверке было так же.


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Paramon от Июль 06, 2014, 12:51
И вот за это я пятёрку и не люблю :D Какие то ограничения создаются непонятные и криво выглядящие :D
А на 4.8.6 не так, что-ли. Установил на кнопку иконку, перенёс на чистую машину - всё работает, иконки нету. Намаялся, пока до гугла не добрался.


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Bepec от Июль 06, 2014, 13:19
В четверке можно отказаться от плагинов и/или указать к ним путь в Qt.conf.
А вот в пятерке нужно с собой таскать хренову тучу хзчего и всё это забито железно :)

PS можно ли собрать как нибудь Qt 5+ без всяких icu icc и прочей хрени на 40 мб? Чтобы хотя б мб в 20 уместилося?


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Old от Июль 06, 2014, 13:27
В четверке можно отказаться от плагинов и/или указать к ним путь в Qt.conf.
А вот в пятерке нужно с собой таскать хренову тучу хзчего и всё это забито железно :)
Почитайте уже документацию, в пятерке с этим все точно так же, как и в четверке


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Paramon от Июль 06, 2014, 13:36
В четверке можно отказаться от плагинов и/или указать к ним путь в Qt.conf.
Что значит отказаться? Дайте линк просветиться.  ???


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Bepec от Июль 06, 2014, 13:45
to Paramon: Отказаться я имею в виду в буквальном смысле этого слова. Можно не использовать.
Плагины не обязательны для работы программы, они лишь "приятное дополнение". Никто не заставляет их использовать. А в пятёрке platforms обязателен в любом случае. И depends не выдаёт зависимости, обо она динамически загружается :D

Ну и чисто не понимаю я почему вдруг неожиданно тролли взяли курс на "давайте 30 dll друг с другом скомпилируем". Если ранее это именно "библиотека С++" была, то сейчас это походит на самостоятельный рантайм :)

to Old: вы можете переместить platforms с помощью qt.conf? Если у вас есть пятерка, попробуйте пожалуйста и отпишитесь.


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Old от Июль 06, 2014, 15:25
to Old: вы можете переместить platforms с помощью qt.conf? Если у вас есть пятерка, попробуйте пожалуйста и отпишитесь.
Могу, пятерка есть, отписался.


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Bepec от Июль 06, 2014, 15:33
Пасип :) Ну тогда остаётся претензия по "необходимости" :)


Название: Re: Failed to load platform plugin "windows" [решено]
Отправлено: Old от Июль 06, 2014, 15:51
Ну тогда остаётся претензия по "необходимости" :)
У меня эта претензия уже несколько лет как...
Мне все эти нитки, сеть и остальная фигня, которую они туда понапихали и даром ненужны.
Но делать нечего, приходится мириться. :(