Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Вышел Qt 4.5.2 и QtCreator 1.2


Автор: SABROG 26.6.2009, 21:43
Конечно тут не такая активность, как на других Qt'шных форумах, но ради приличия выложу новость.

QtSoftware выпустили Qt версию 4.5.2 и QtCreator 1.2. Подробнее можно прочитать http://www.qtsoftware.com/about/news/updates-to-qt-and-qt-creator-released. Скачать можно http://www.qtsoftware.com/downloads. Также можно скачать архив с исходниками для ftp://ftp.qtsoftware.com/qt/source/qt-all-opensource-src-4.5.2.tar.gz платформ. 

Помимо этого http://sourceforge.net/project/shownotes.php?release_id=691876 долгожданный MinGW с GCC 4.4.0, можно скачать http://sourceforge.net/project/downloading.php?group_id=2435&filename=gcc-full-4.4.0-mingw32-bin-2.tar.lzma&a=35317134. Для распаковки .lzma нужен 7-zip. Также потребуются эти пакеты: http://sourceforge.net/project/downloading.php?group_id=2435&filename=mingwrt-3.15.2-mingw32-dev.tar.gz&a=24935956 http://sourceforge.net/project/downloading.php?group_id=2435&filename=mingwrt-3.15.2-mingw32-dll.tar.gz&a=26868127 http://sourceforge.net/project/downloading.php?group_id=2435&filename=binutils-2.19.1-mingw32-bin.tar.gz&a=35753404 http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=61481&release_id=115315

Я объединил необходимые файлы в один архив: http://filebeam.com/7621381e913ceb8b156e037f647b8c25 и http://up-file.com/download/44b6e0ab779cb5d58bbdd79dde53d39ea (зеркало).

О том как собрать Qt с поддержкой Phonon на MinGW компиляторе можно прочитать http://wiki.qtcentre.org/index.php?title=Building_the_Phonon_backend_plugin_on_Windows_using_MinGW.

Я собирал Qt из MSYS. Прилагаю скрипт сборки, ключи сборки можете менять, но соберется ли у вас Qt при этом гарантии не дам. Насильно выключена сборка демок и примеров, если надо будет - заходите в папку с example'ом и компилите командой make (MSYS), mingw32-make (cmd). Сделано для сокращения времени компиляции библиотеки.


Цитата

#!/bin/sh
#execute with:>. ./envir.sh
export LIB=;
export INCLUDE=;
export QTDIR=${PWD};
export PATH=.:/usr/local/bin:/bin:${QTDIR}:${QTDIR}/bin;
export PATH=${PATH}:/mingw:/mingw/bin;
export PATH=${PATH}:/perl:/perl/bin;
export PATH=${PATH}:${SYSTEMROOT}/system32;
export QMAKESPEC=win32-g++;
#export MAKEFLAGS=-j2
make confclean
configure.exe -debug-and-release -fast -nomake examples -nomake demos -no-qt3support -phonon -phonon-backend -qt-sql-sqlite -qt-sql-odbc -qt-libtiff -qt-gif -qt-libpng -qt-libmng -webkit -qt-libjpeg -qt-zlib -no-style-windowsxp -no-style-windowsvista -confirm-license -opensource -no-direct3d -no-incredibuild-xge -no-vcproj



Инструкция по применению:

* выполняем подготовительную стадию для сборки Phonon на MinGW по ссылке, что я давал выше (ВНИМАНИЕ: никаких резервных .pro файлов типа old_ds9.pro в папке не оставляем иначе он подхватится компилятором)
* запускаем MSYS и заходим в папку с исходниками новой Qt. (cd - смена каталога, <tab> - дополнение пути, ls - список файлов)
* запускаем скрипт так (пробел между точками обязателен):
>. ./envir.sh (это файлик, содержимое которого выше в цитате)
* после окончания конфигурирования команда:
>make (прошу обратить внимание, ни mingw32-make, а make)

В процессе сборки может писать:
Код

couldn't commit memory for cygwin heap, Win32 error 487


Просто вводим еще раз make, пока не соберется. Линковка QtWebKitd4.dll может быть долгой, при этом кажется, что компьютер ничего не делает, это не так. Строчку #export MAKEFLAGS=-j2 можете раскомментировать на свой страх и риск, это должно увеличить скорость компиляции и будет грузить комп на 100%, т.к. задействует сразу 2 ядра процессора, при этом сборка может неоднократно прерываться из-за ошибок.

Почему MSYS. На виндах младше WindowsXP ограниченный размер буффера для параметров командной строки, из-за этого QtWebKit не собирается. В msys'шном make такой проблемы нет, в mingw32-make она есть.

Для тех кто любит наисвежайшее. Можно взять самые последние исходники Qt из Git репозитория. Там варится версия 4.6.0. Чтобы это сделать надо поставить http://code.google.com/p/msysgit/. Затем:
* создаем папочку типа: Qt 4.6. 
* Далее Пуск(Start)->Git->Git Bash.
* появится консоль (немного видоизмененный MSYS, но команды те же)
* заходим в нашу папочку Qt 4.6
* набираем команды:
Код

>git init
>git remote add origin git://gitorious.org/qt/qt.git
>git pull origin master


Всё, из интернета начнут литься свежие исходники. Чтобы их собирать я рекомендую копировать папку целиком в другое место и собирать оттуда. Чтобы обновить текущие исходники надо использовать команду: git pull origin master находясь в папке Qt 4.6. Но гуру рекомендуют привыкать выполнять команды: 
git fetch (смотрим какие файлы были изменены)
get merge (соглашаемся принять изменения)

Чтобы было всё "по-взрослому", а не бездумно качать коммиты ;)

Ну и конечно, если у вас нет времени или вы только начинающий, вы всегда можете скачать Qt SDK в котором уже всё собрано и готово к работе. Но хочу предупредить, что QtCreator в таком SDK ведет себя не стабильно на платформе Windows 2000, которая официально не поддерживается, просто сам пакет был собран под WindowsXP/Vista. Если собирать вручную и Qt и QtCreator под Windows2000 - всё работает нормально.

Автор: nickless 27.6.2009, 20:20
Цитата(SABROG @  26.6.2009,  20:43 Найти цитируемый пост)
>git init
>git remote add origin git://gitorious.org/qt/qt.git
>git pull origin master

А почему не просто clone? Пионеры не любят лёгких путей? smile 

Автор: SABROG 27.6.2009, 21:02
Цитата(nickless @ 27.6.2009,  20:20)
Цитата(SABROG @  26.6.2009,  20:43 Найти цитируемый пост)
>git init
>git remote add origin git://gitorious.org/qt/qt.git
>git pull origin master

А почему не просто clone? Пионеры не любят лёгких путей? smile

В том то и дело, что в вопросе Git'a я еще пионер.

Автор: dix75 28.6.2009, 01:27
спасиб

Автор: Andrew121 28.6.2009, 01:40
SABROG,  smile 

Автор: dix75 28.6.2009, 01:50
SABROG, 
раскажи как это прикрутить?
Цитата(SABROG @  26.6.2009,  21:43 Найти цитируемый пост)
Помимо этого вышел долгожданный MinGW с GCC 4.4.0, можно скачать тут. Для распаковки .lzma нужен 7-zip. Также потребуются эти пакеты: 1 2 3 4

тупое копирование в папку c:\MinGW не помогло

Автор: Andrew121 28.6.2009, 05:37
dix75, Ошибка какая?
Вывод в консоли покажи.

Автор: W4FhLF 28.6.2009, 07:19
Блин, неделю назад только обновился до 4.5.1. Можно ли узнать планируемые даты новых релизов?

Автор: kemiisto 28.6.2009, 10:07
Цитата(SABROG @  26.6.2009,  19:43 Найти цитируемый пост)
Если собирать вручную и Qt и QtCreator под Windows2000 - всё работает нормально.

Я тут попробовал, правда под XP. Qt собралось, а вот Creator - нет.

user posted image

У меня GCC 4.4.0-tdm-1 r2. Я так понимаю, не хватает какого-то объявления UINT_MAX. Что и куда добавить?

Автор: SABROG 28.6.2009, 11:54
Цитата

тупое копирование в папку c:\MinGW не помогло


Я объединил необходимые файлы в один архив: http://filebeam.com/7621381e913ceb8b156e037f647b8c25 и http://up-file.com/download/44b6e0ab779cb5d58bbdd79dde53d39ea (зеркало).

Цитата

Я тут попробовал, правда под XP. Qt собралось, а вот Creator - нет.


Довольно странно, это объявление находится в mingw/include/limits.h

Попытался тоже собрать на WinXP, та же проблема. Пока пофиксил так (добавил limits.h), вроде всё собралось:

qt-creator-1.2.0-src\src\plugins\debugger\shared\peutils.cpp
Код

#include <limits.h>
#include "peutils.h"

#include <utils/winutils.h>
#include <QtCore/QStringList>
#include <QtCore/QDebug>
#include <windows.h>


Сейчас буду писать троллям.

Цитата

Блин, неделю назад только обновился до 4.5.1. Можно ли узнать планируемые даты новых релизов?


Это врятли, но они выходят обычно парами. Сначала делают релиз 4.5.0, а потом патч-релиз 4.5.1, в котором фиксятся баги найденные пользователями smile Используй Git и ждать не придется.

Автор: kemiisto 28.6.2009, 12:15
Цитата(SABROG @  28.6.2009,  09:54 Найти цитируемый пост)
Пока пофиксил так (добавил limits.h), вроде всё собралось

Ага. Работает! smile 

Автор: kemiisto 28.6.2009, 15:28
Цитата(SABROG @  26.6.2009,  19:43 Найти цитируемый пост)
Ну и конечно, если у вас нет времени или вы только начинающий, вы всегда можете скачать Qt SDK в котором уже всё собрано и готово к работе. Но хочу предупредить, что QtCreator в таком SDK ведет себя не стабильно на платформе Windows 2000, которая официально не поддерживается, просто сам пакет был собран под WindowsXP/Vista. Если собирать вручную и Qt и QtCreator под Windows2000 - всё работает нормально.

Класс! smile Мне тоже помогло, хотя и XP. В Virtual Box'е стоит не_совсем_легальная облегчённая XP. И вот Qt Creato 1.2 из SDK падал на чём попало, а собранный из сорсов - робит! smile 

Автор: bsa 28.6.2009, 16:24
Кто случайно решит собрать русский перевод Qt Creator не пугайтесь. Исправленный перевод на пару дней опоздал к заморозке кода и, поэтому, в релиз не попал. Кстати, полный и качественный перевод Qt тоже не попал по той же причине. Но, в следующих версиях он уже будет. Любители экспериментов могут попробовать http://qt.gitorious.org/. Если найдете ошибки в переводе, то пишите на http://www.prog.org.ru/board_70_0.html.

Автор: dix75 28.6.2009, 23:56
Andrew121, 
я правда  вне консоли
но вот 
Код

g++.exe -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/Qt/4/qt/include/QtCore' -I'c:/Qt/4/qt/include/QtGui' -I'c:/Qt/4/qt/include' -I'c:/Qt/4/qt/include/ActiveQt' -I'.' -I'.' -I'nbproject' -I'.' -I'c:/Qt/4/qt/mkspecs/default' -o build/Debug/MinGW-Windows/ui_Boss.o Boss/ui_Boss.cpp
g++.exe -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/Qt/4/qt/include/QtCore' -I'c:/Qt/4/qt/include/QtGui' -I'c:/Qt/4/qt/include' -I'c:/Qt/4/qt/include/ActiveQt' -I'.' -I'.' -I'nbproject' -I'.' -I'c:/Qt/4/qt/mkspecs/default' -o build/Debug/MinGW-Windows/FormInstance.o Classes/Instance/FormInstance.cpp
g++.exe -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/Qt/4/qt/include/QtCore' -I'c:/Qt/4/qt/include/QtGui' -I'c:/Qt/4/qt/include' -I'c:/Qt/4/qt/include/ActiveQt' -I'.' -I'.' -I'nbproject' -I'.' -I'c:/Qt/4/qt/mkspecs/default' -o build/Debug/MinGW-Windows/Instance.o Classes/Instance/Instance.cpp
g++.exe -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/Qt/4/qt/include/QtCore' -I'c:/Qt/4/qt/include/QtGui' -I'c:/Qt/4/qt/include' -I'c:/Qt/4/qt/include/ActiveQt' -I'.' -I'.' -I'nbproject' -I'.' -I'c:/Qt/4/qt/mkspecs/default' -o build/Debug/MinGW-Windows/main.o main.cpp
windres -i Lythos_resource.rc -o build/Debug/MinGW-Windows/Lythos_resource_res.o --include-dir=.
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o dist/Debug/MinGW-Windows/Lythos.exe build/Debug/MinGW-Windows/ui_Boss.o build/Debug/MinGW-Windows/FormInstance.o build/Debug/MinGW-Windows/Instance.o build/Debug/MinGW-Windows/main.o  -L'c:/Qt/4/qt/lib' -lmingw32 -lqtmaind build/Debug/MinGW-Windows/Lythos_resource_res.o -lQtGuid4 -lQtCored4
c:/Qt/4/qt/lib/libqtmaind.a(qtmain_win.o): In function `WinMain':

C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt/src/winmain/qtmain_win.cpp:91: undefined reference to `__gxx_personality_sj0'

C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt/src/winmain/qtmain_win.cpp:91: undefined reference to `_Unwind_SjLj_Register'

C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt/src/winmain/qtmain_win.cpp:140: undefined reference to `_Unwind_SjLj_Resume'

C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt/src/winmain/qtmain_win.cpp:140: undefined reference to `_Unwind_SjLj_Unregister'

collect2: ld returned 1 exit status

make[2]: *** [dist/Debug/MinGW-Windows/Lythos.exe] Error 1
make[2]: Leaving directory `/d/Programming/qt/Lythos'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/d/Programming/qt/Lythos'
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 8s)


Автор: Remiznik 29.6.2009, 17:46
SABROG, может поделишся впечатлениями о новинках ?) 

Автор: SABROG 29.6.2009, 18:22
Цитата(Remiznik @ 29.6.2009,  17:46)
SABROG, может поделишся впечатлениями о новинках ?)

Особенно я еще не гонял. Об изменениях можете сами почитать, в принципе. А вот то, что столкнулся с проблемами на этапе сборки это расстраивает. Починили одно - покалечили другое.

Автор: andrew_121 29.6.2009, 18:26
dix75, Ставь этот Мингв: http://www.tdragon.net/recentgcc/

Добавлено через 56 секунд
Цитата(SABROG @  29.6.2009,  18:22 Найти цитируемый пост)
А вот то, что столкнулся с проблемами на этапе сборки это расстраивает. 

Какие проблемы то? Из сорцов не собирал еще.

Автор: SABROG 29.6.2009, 18:32
Цитата(andrew_121 @  29.6.2009,  18:26 Найти цитируемый пост)
dix75, Ставь этот Мингв: http://www.tdragon.net/recentgcc/

Главное обратить внимание на эту надпись и поставить r2:

Цитата

IMPORTANT: 4.4.0-tdm-1 r2!
A fairly prominent bug was quickly discovered in the first release of GCC 4.4.0 TDM-1, the symptoms of which are multiple definitions of libgcc's internal _Unwind_* functions when an import library created with "--export-all-symbols" is used. If you downloaded the 4.4.0 release before this message appeared, please re-download the latest packages! The TDM/MinGW installer should, as usual, perform the upgrade automatically. If you downloaded and installed the packages manually, the only changed components are core, g++, and fortran (the new archives' names end in "-2"). 



Цитата(andrew_121 @  29.6.2009,  18:26 Найти цитируемый пост)
Какие проблемы то? Из сорцов не собирал еще. 

Да под MSYS то собирает, то не собирает. Первая компиляция со скрипом прошла, а вторая нивкакую. С QtCreator'ом тоже косяк, не находит объявление константы, пришлось исходники править ручками, чтобы добавить этот злополучный limits.h.

Автор: andrew_121 29.6.2009, 18:40
Цитата(SABROG @  29.6.2009,  18:32 Найти цитируемый пост)
Главное обратить внимание на эту надпись и поставить r2:

Думаю это сложно не заметить smile 


Цитата(SABROG @  29.6.2009,  18:32 Найти цитируемый пост)
Да под MSYS то собирает, то не собирает. Первая компиляция со скрипом прошла, а вторая нивкакую. С QtCreator'ом тоже косяк, не находит объявление константы, пришлось исходники править ручками, чтобы добавить этот злополучный limits.h. 

Можешь подробнее описать проблему?
Я два дня пытаюсь собрать 4.5.2 под Cygwin. Ошибок куча! Начал грешить на Cygwin. Возможно дело не в нем...

Автор: SABROG 29.6.2009, 20:17
Цитата(andrew_121 @  29.6.2009,  18:40 Найти цитируемый пост)
Я два дня пытаюсь собрать 4.5.2 под Cygwin. Ошибок куча! Начал грешить на Cygwin. Возможно дело не в нем... 

Имеется ввиду MSYS или консоль (CMD)?

Более подробно я тут расписал http://www.forum.crossplatform.ru/index.php?s=&showtopic=2975&view=findpost&p=21403

Автор: andrew_121 29.6.2009, 23:42
Цитата(SABROG @  29.6.2009,  20:17 Найти цитируемый пост)
Имеется ввиду MSYS или консоль (CMD)?

Имеется в виду: http://cygwin.com/

Автор: SABROG 1.7.2009, 16:53
Хочу предупредить насчет нового MinGW 4.4.0. В нем локализация появилась и компилер пытается вывести ошибки по-русски, но при этом выводятся крякозябры. Чтобы пофиксить надо грохнуть папку c:\MinGW\share\locale\ru и тогда вернется английский обратно.

Еще одна важная вещь из-за которой QtCreator не компилится на новом MinGW: http://gcc.gnu.org/gcc-4.4/porting_to.html - Header Dependencies Changes и это тоже. Теперь требуется явное указание инклудов, чтобы использовать те или иные вещи. Например QtCreator в одном файлике использует дефайн UINT_MAX (или как-то так smile ) без #include <limits.h>. Это нормально компилится на gcc ранних версий, но не в новом.

Автор: andrew_121 1.7.2009, 19:00
Все таки с Qt что-то не так! Не в какую не компилиться!

Автор: andrew_121 6.7.2009, 19:37
SABROG, Установил Мингв твоей сборки. При выводе сообщений об ошибках, он видимо пытается "говорить" по русски. Но получаются иероглифы. Устанавливал разные кодовые страницы. Но все то же ((

Скрин прилагаю.

Автор: SABROG 6.7.2009, 20:59
Чуть выше постом возьми: http://forum.vingrad.ru/index.php?showtopic=264756&view=findpost&p=1910827

Автор: andrew_121 6.7.2009, 21:26
SABROG, Спасибо. Буду внимательней.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)