[РЕШЕНО] Статическая сборка Qt 5.0.0 Beta-2: ошибка при запуске



  • Здравствуйте!
    Собрал для себя статическую версию Qt5.beta-2 (qt-everywhere-opensource-src-5.0.0-beta2). Раза с 4го всё собралось до конца. Если будет нужно кому - распишу подробности.
    Создал тестовое Qt Gui приложение через Qt Creator, указал инструментарий, компилятор, профиль, всё ок.
    Сборка тоже идет без ошибок.
    При запуске приложения выдает:

    bq. Failed to load platform plugin "windows". Available platforms are:
    Invalid parameter passed to C runtime function.
    Invalid parameter passed to C runtime function.

    dependency-walker выдает:

    bq. DllMain(0x74ED0000, DLL_PROCESS_ATTACH, 0x0028FD24) in "WS2_32.DLL" called.
    DllMain(0x74ED0000, DLL_PROCESS_ATTACH, 0x0028FD24) in "WS2_32.DLL" returned 1 (0x1).
    GetProcAddress(0x761A0000 [MSVCRT.DLL], "_set_invalid_parameter_handler") called from "UNTITLED12.EXE" at address 0x004012C8 and returned NULL. Error: (127).
    Failed to load platform plugin "windows". Available platforms are:
    Invalid parameter passed to C runtime function.
    Invalid parameter passed to C runtime function.

    Подскажите, пожалуйста, где искать решение.



  • Что у тебя лужит в <QTDIR>\qtbase\plugins\platforms? Там должна лежать windows5.dll, твоя программа должна её находить. Также libGLES, ANGLE, etc...



  • у меня там лежит libwindows.a
    и libqminimal.a

    ANGLE мне не нужен: я использую -opengl desktop



  • тогда попробуй просто линковать с libwindows.a



  • дописал в pro файле

    LIBS +=
    C:/Qt/5.0.0_beta2_static/qtbase/plugins/platforms/libwindows.a

    Увы, не помогает.

    У Вас получалось статически собрать 5.0.0-beta2?



  • Нет, статически я не собирал, только динамическую сборку делал. И честно говоря я не помню как работают Qt плагины с статической сборкой... терзают смутные сомнения что libwindows5.dll всё-таки должна быть собрана динамически... По крайней мере ошибка:

    bq. Failed to load platform plugin “windows”. Available platforms are:

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



  • Я думаю что Вы очень поможете если вышлете мне нужные ключи для configure и что должно быть в PATH ( для сборки без webkit). Остальное у меня получается.

    Кстати при статической сборке вылезло несколько ошибок - отказались собираться designer, linguist и qttranslations, в %QTDIR%\qtactiveqt\tools\dumpcpp ошибка компиляции из за multiply definition функции 545:: bool isBuiltinType(const QByteArray &type), что я вылечил рефакторингом. Вряд-ли это повлияло на результат сборки.

    Мои настройки:
    SET QTDIR=C:\Qt\5.0.0_beta2_static
    SET MINGWDIR=C:\Qt\mingw-4.7.2\mingw
    SET PERLDIR=C:\Perl64
    SET QMAKESPEC=win32-g++

    chdir /D %QTDIR%
    SET PATH=%QTDIR%\qtbase\bin;%QTDIR%\qtrepotools\bin;%MINGWDIR%\bin;%SystemRoot%\System32;%PERLDIR%\site\bin;%PERLDIR%\bin;C:\Python27

    echo -- MinGW Confclean --
    mingw32-make confclean

    echo -- MinGW Configure --
    configure -opensource -developer-build -confirm-license -release -static -qt-sql-sqlite -qt-libpng -qt-libjpeg -opengl desktop -platform win32-g++ -c++11 -nomake examples -nomake demos -nomake tests
    echo -- MinGW Build --
    qtbase\bin\qmake.exe qtsdk.pro QT_BUILD_PARTS="libs" JAVASCRIPTCORE_JIT="yes"
    mingw32-make



  • При конфигурации не выдавало такого сообщения?

    bq. WARNING: Using static linking will disable the use of plugins. Make sure you compile ALL needed modules into the library.

    Попробуй вот это: http://permalink.gmane.org/gmane.comp.lib.qt.releasing/121



  • УРААА!!!

    Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
    вместо Q_IMPORT_PLUGIN(windows)

    и LIBS как в примере. Проект запустился :))))))))
    Большое спасибо!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.