Ошибка сборки Qt5.0.1 в mingw



  • Пытаюсь пересобрать Qt5 через MinGW.

    @Падает на таком сообщении.
    Цитировать
    In file included from ../../xml/dom/qdom.cpp:43:0:
    ../../../include/QtXml/qdom.h:1:85: фатальная ошибка: ../../../include/QtXml/../
    ../../../../../../../c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/src/xml/dom/qdom.h: Invalid
    argument
    компиляция прервана.
    Makefile.Release:8446: recipe for target '.obj/release_shared/qdom.o' failed
    mingw32-make[4]: *** [.obj/release_shared/qdom.o] Error 1
    mingw32-make[4]: Leaving directory 'c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/src/tools/bootstrap'
    Makefile:34: recipe for target 'release' failed
    mingw32-make[3]: *** [release] Error 2
    mingw32-make[3]: Leaving directory 'c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/src/tools/bootstrap'
    Makefile:42: recipe for target 'sub-tools-bootstrap-make_first' failed
    mingw32-make[2]: *** [sub-tools-bootstrap-make_first] Error 2
    mingw32-make[2]: Leaving directory 'c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/src/tools'
    Makefile:51: recipe for target 'sub-tools-make_first' failed
    mingw32-make[1]: *** [sub-tools-make_first] Error 2
    mingw32-make[1]: Leaving directory 'c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/src'
    Makefile:40: recipe for target 'sub-src-make_first' failed
    mingw32-make: *** [sub-src-make_first] Error 2@

    Собираю так
    ./configure.exe -plugin-sql-mysql -qt-sql-odbc -opengl desktop

    $ g++ --version
    g++.exe (GCC) 4.7.2

    Что не так делаю ?



  • Странно, у меня собрался и на 4.7.2 (W7) и на 4.7.1 (XP).

    Все дополнительное ПО Вы точно поставили/пути прописали? А то может что-то до этого не "отработало".



  • В течении 30 минут компилируется нормально, ломается только на сборке QtXML.

    Mingw ставил через mingw-get-inst-20120426.exe. Пути в "переменные среды" добавлял.

    Более того. Собирая аналогично (правда gcc старее) Qt 4.8.4, проблем не замечено.

    Так что думаю, что для Qt 5.0.1 что-то всё же забыл. Как только догадаться, что именно. Какие параметры сборки ?



  • [quote author="admsasha" date="1360459781"]
    ...
    Mingw ставил через mingw-get-inst-20120426.exe. Пути в "переменные среды" добавлял.
    ...
    Так что думаю, что для Qt 5.0.1 что-то всё же забыл. Как только догадаться, что именно. Какие параметры сборки ?[/quote]

    Помимо MinGW, необходимо еще установить Perl (не ниже версии 5.8, лучше 5.12), Python (последнюю версию из ветки 2.7, но не 3.3), а так же Ruby и библиотеку ICU (это для сборки QtWebKit).



  • $ python
    Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32

    $ perl -v
    This is perl, v5.8.8 built for msys-64int

    icu4c-50_1_2



  • Обновление perl на "This is perl 5, version 16, subversion 2 (v5.16.2) built for MSWin32-x86-multi-thread" Проблему не решило.



  • Да, это тут видимо не при чем. У Вас кажется в файле:

    @c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/include/QtXml/qdom.h@

    не правильно указан путь включения нужного файла "qdom.h".

    Если там что-то вроде:
    @../../../include/QtXml/../
    ../../../../../../../c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/src/xml/dom/qdom.h@

    попробуйте оставить только прямой путь до файла:

    @c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/src/xml/dom/qdom.h@

    И вообще очень интересный путь: "c:/Qt/Qt5.0.1/5.0.1/Src/" .... Вы его случаем не из Git ставили?



  • Скачал по ссылке "http://releases.qt-project.org/qt5/5.0.1/qt-windows-opensource-5.0.1-mingw47_32-x86-offline.exe" и установил по умолчанию.



  • Да, в "c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/include/QtXml/qdom.h" одна строка.
    #include "../../../../../../../../c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/src/xml/dom/qdom.h"

    Замена на "c:/Qt/Qt5.0.1/5.0.1/Src/qtbase/src/xml/dom/qdom.h" не помогла.



  • Заменил аналогичные пути в файлах qtxmlglobal.h и qxml.h. Процесс пошел дальше. Жду оставшиеся 4 часа :)



  • [quote author="admsasha" date="1360556217"]Скачал по ссылке "http://releases.qt-project.org/qt5/5.0.1/qt-windows-opensource-5.0.1-mingw47_32-x86-offline.exe" и установил по умолчанию.[/quote]

    Аааа, теперь ясно.
    Если Вы хотите полностью все перекомпилировать, то лучше, наверное, будет скачать чистый "исходник":http://releases.qt-project.org/qt5/5.0.1/single/qt-everywhere-opensource-src-5.0.1.zip и работать с ним.

    Если же нет такого желания, а нужно только докомпилировать нужные плагины (я смотрю нужен MySQL) - то для этого не обязательно делать реконфигурацию - достаточно скомпилировать сам плагин. Как это сделать написано в "справке":http://qt-project.org/doc/qt-5.0/qtsql/sql-driver.html#qmysql. Отмечу только, что необходимо будет использовать ту версию MinGW, что идет вместе со скаченным Вами "оффлайн"-инсталляторе. Иначе, возможны ошибки "бинарной" совместимости.



  • Да, я для поддержки mysql всё это и начал. Т.е. пересобирать Qt для поддержки плагина plugin-sql-mysql не нужно ?



  • Нет не нужно. Можно собрать только сам плагин. Выше постом я привел ссылку на справку - там изложен даже пошаговый мануал для этого, правда для версии Qt 4.6 и на английском.
    Из личного опыта сборки плагина для MySQL ничего рассказать не могу - было это давно и не правда. Сам я работаю с iBase (FireBird), так вот в процедуре его сборки со времен Qt 4.6 ничего не поменялось. Полагаю, ничего не изменилось и для MySQL - поэтому и мануал из справки должен быть рабочий.



  • Большое спасибо !



  • Не за что. Главное, чтобы получилось то, что задумали.


Log in to reply
 

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