Компилирование Qt5



  • Здравствуйте!
    Пользовался вот этим руководством http://qt-project.org/wiki/Building-Qt-5-from-Git .
    ОС - WIn 7 x64.
    MinGW x64-4.7.2-release-posix-sjlj-rev8
    ICU компилировал по этой инструкции http://qt-project.org/wiki/Compiling-ICU-with-MinGW .
    Perl64, Ruby193, Python33.
    Переменные среды:
    (выборочно)
    PATH C:\Perl64\site\bin;C:\Perl64\bin;c:\mingw\bin;c:\python33;c:\Ruby193\bin;c:\icu;c:\icu\source\lib;f:\Program Files (x86)\Git\cmd
    LIB C:\icu\source\lib
    INCLUDE C:\icu\source\common;C:\icu\source\i18n



  • Конфигурация компиляции
    c:\qt5>configure -prefix c:\qt5\qtbase -opensource -debug-and-release -icu -nomake
    tests -opengl desktop

    Вот после этих сообщений компиляция прервалась
    c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/
    bin/ld.exe: cannot find -licuin
    c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/
    bin/ld.exe: cannot find -licuuc
    collect2.exe: error: ld returned 1 exit status

    Можете подсказать в чем проблема?



  • [quote author="sorochinskii" date="1362257386"]
    c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/
    bin/ld.exe: cannot find -licuin
    c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/
    bin/ld.exe: cannot find -licuuc
    collect2.exe: error: ld returned 1 exit status
    [/quote]

    Линкер не находит библиотек ICU. Скорее всего они у Вас имеют наименования не в "стиле "MinGW":http://www.mingw.org/wiki/Specify_the_libraries_for_the_linker_to_use ". MinGW ищет библиотеки поименованные либо как "lib<name>.a", либо как "<name>.lib". У Вас же они, скорее всего, имеют наименование "lib<name>.lib".

    Что Вы можете сделать - вручную переименовать из вида "lib<name>.lib" в "<name>.lib", либо собрать библиотеку из исходников предназначенных для платформы Unix. Собственно это я затронул в своем "посте":http://codedchaos.blogspot.ru/2013/02/qt5-mingw.html посвященном сборке Qt5, правда компилятором для платформы Win32.



  • Как оказалось, тогда библиотеки ICU не скомпилировались вообще. По крайней мере я их не нашел :) Сказывается неопытность и непонимание в таких делах. Но в итоге скомпилировал Qt5 - со всеми модулями, что заняло примерно сутки.
    И парочка вопросов возникших по ходу.
    Скачивал архив "MinGW":http://sourceforge.net/projects/mingwbuilds/ - x64-4.7.2-release-posix-sjlj-rev9.7z . В архиве я не нашел никакого бат файла или shell'а или привычного экзе, кроме компиляторов. Поэтому погуглив, нашел вот это руководство - http://goo.gl/LtNSb . Установив MSYS - я получил shell (правильно ли я понимаю, что MSYS дает возможность использовать MinGW на виндовс? И для того чтобы MSYS узнал, где находится MinGW из упомянутого руководства потребовался
    Step #1: carefully check the C:\msys64\etx\fstab file; it must contain the following row: (this will automatically mount C:\MinGW64 as /mingw) C:/MinGW64 /mingw). ?).



  • Затем собирал QtCreator 2.6 "по руководству":http://doc.qt.digia.com/qtcreator-extending/getting-and-building.html. После того как собралось, запустил qtcreator, а реакция на какие-либо действия мышкой в его окне или сборка приводят к длительным зависаниям оного. Работать невозможно. Ещё после запуска qtcreator.exe кроме окна со всеми прибамбасами появляется второе черное окно, в котором в первой строке:
    SOFT ASSERT: "QDir(dir).isAbsolute()" in file vcsmanager.cpp, line 125
    И все остальные строки повторяются и периодически добавляются в конец:
    SOFT ASSERT: "dir.startsWith(toplevel + QLatin1Char('/')) || topLevel == dir || topLevel.isEmpty()" in file vcsmanager.cpp in line 129
    Моете подсказать в чем дело?



  • "MinGW":http://ru.wikipedia.org/wiki/MinGW прекрасно работает на Windows и без MSYS.

    MSYS представляет собой оболочку в "стиле Unix" с набором привычных для данной среды утилит. Некоторые библиотеки, хотя и имеют цель сборки "MinGW", зачастую просто так в командной строке Windows не собираются, т.к. требуют дополнительных утилит для некоторых операций. Вот тут то и возникает необходимость в MSYS предоставляющий доступ практически ко всем популярным Unix-утилитам.

    По поводу QtCreator'а ничего сказать не могу. Я его никогда из исходников не собирал - в этом не было совершенно никакой необходимости. Собственно, в приведенном Вами мануале об этом же говорится в самом начале :-).



  • Спасибо за совет. Я изначально установил последнюю версию, которую нашел на "ftp":ftp://ftp.qt-project.org/qtcreator/ , но потом, заметив неработоспособность, прочитал, что надо 2.6. Поэтому и стал собирать) Нашел тут в Downloads QtCreator 2.6, установил. Вроде работает пока.
    А можно ли удалить без последствий какие-нибудь папки после сборки Qt5? Например, папки src? А то 9 гигабайт на диске занимает.
    Спасибо за поддержку!



  • [quote author="sorochinskii" date="1362909767"]
    А можно ли удалить без последствий какие-нибудь папки после сборки Qt5? Например, папки src? А то 9 гигабайт на диске занимает.
    [/quote]

    Все, рано или поздно, задаются вопросом "очистки" каталога сборки Qt :-) и свое "видение" этого я уже излагал "тут":http://codedchaos.blogspot.com/2012/08/qt-mingw.html?showComment=1345663171386#c1777831851127124710 .

    Для сборки Qt5 под Windows добавили поддержку опции "prefix", но задавать ее опять же надо указанием на вполне определенный каталог из дистрибутива Qt. Поэтому я не думаю, что со времен Qt4 что-то принципиально поменялось в этом вопросе и команда install по прежнему не работает. Но этот вопрос лучше оставить для более опытных форумчан :-) .



  • Пока просто удалю *.o файлы. Если что не пойдет, архив сохраню)
    Ещё раз спасибо.



  • Пожалуйста :-)


Log in to reply
 

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