Russian Qt Forum

Разное => Новости Qt сообщества => Тема начата: Пантер от Сентябрь 17, 2012, 09:41



Название: Qt 4.8.3 вышел
Отправлено: Пантер от Сентябрь 17, 2012, 09:41
Список изменений (http://qt-project.org/uploads/community_updates/changes-4.8.3)


Название: Re: Qt 4.8.3 вышел
Отправлено: Alex Custov от Сентябрь 18, 2012, 01:12
На MinGW платформе эпический баг с rcc.exe.


Название: Re: Qt 4.8.3 вышел
Отправлено: cya-st от Сентябрь 18, 2012, 21:26
На MinGW платформе эпический баг с rcc.exe.
Тоже столкнулся с этим багом, и еще, (может это только у меня) не могу настроить GDB никак, запускается CDB, да и тот не работает.


Название: Re: Qt 4.8.3 вышел
Отправлено: Serr500 от Сентябрь 19, 2012, 08:07
На MinGW платформе эпический баг с rcc.exe.
Просветите плиз, что за баг?


Название: Re: Qt 4.8.3 вышел
Отправлено: Alex Custov от Сентябрь 19, 2012, 12:25
https://bugreports.qt-project.org/browse/QTBUG-27244


Название: Re: Qt 4.8.3 вышел
Отправлено: Serr500 от Сентябрь 19, 2012, 15:02
Да. У меня пришлось прописывать путь к %QT_DIR% чтобы проекты нормально собирались.

А что, разработчики стали компилить готовые сборки без RTTI? У меня на dynamic_cast стало ругаться. Чем они руководствовались, когда убирали RTTI?


Название: Re: Qt 4.8.3 вышел
Отправлено: Alex Custov от Сентябрь 19, 2012, 16:06
Нда, ещё и QSettings на Windows (на Linux не проверял) не может создать конфиг в IniFormat, ну и релиз >:( Будьте осторожны в таком коде:

Код
C++ (Qt)
   QSettings settings(QSettings::IniFormat,
                      QSettings::UserScope,
                      QCoreApplication::organizationName(),
                      QCoreApplication::applicationName());
 
   settings.setFallbacksEnabled(false);
   settings.setValue("key", "value");
   settings.sync();
 

Если каталог для ini файла не существует (на Windows XP - C:/Documents and Settings/<user>/Application Data/<organization>, на Windows 7 - C:/Users/<user>/AppData/Roaming/<organization>), то конфиг создан не будет. В Qt 4.8.2 всё работает нормально.


Название: Re: Qt 4.8.3 вышел
Отправлено: Пантер от Сентябрь 19, 2012, 16:36
Alex Custov: а QDir::mkpath работает?


Название: Re: Qt 4.8.3 вышел
Отправлено: Alex Custov от Сентябрь 19, 2012, 16:38
Alex Custov: а QDir::mkpath работает?

да, в качестве workaround использую именно QDir().mkpath() сразу после конструктора QSettings(), хотя у меня уже руки чешутся откатится на 4.8.2, кто знает что ещё за сюрпризы в этом релизе...


Название: Re: Qt 4.8.3 вышел
Отправлено: cya-st от Сентябрь 19, 2012, 19:17
хотя у меня уже руки чешутся откатится на 4.8.2
я уже откатил ;)


Название: Re: Qt 4.8.3 вышел
Отправлено: Alex Custov от Сентябрь 19, 2012, 20:31
А что, разработчики стали компилить готовые сборки без RTTI? У меня на dynamic_cast стало ругаться

А что конкретно?


Название: Re: Qt 4.8.3 вышел
Отправлено: Serr500 от Сентябрь 19, 2012, 22:06
А что, разработчики стали компилить готовые сборки без RTTI? У меня на dynamic_cast стало ругаться

А что конкретно?
При вызове компилятора g++ присутствует параметр -DQT_NO_DYNAMIC_CAST (сам его нигде не ставил, генерится qmake'ом автоматически) и при компиляции вместо dynamic_cast подставляется define из qglobal.h
Код:
/*
   When RTTI is not available, define this macro to force any uses of
   dynamic_cast to cause a compile failure.
*/

#ifdef QT_NO_DYNAMIC_CAST
#  define dynamic_cast QT_PREPEND_NAMESPACE(qt_dynamic_cast_check)

  template<typename T, typename X>
  T qt_dynamic_cast_check(X, T* = 0)
  { return T::dynamic_cast_will_always_fail_because_rtti_is_disabled; }
#endif
Естественно, подставленная херня скомпилиться не может и выдаёт ошибку типа
Код:
%QT_DIR%\include/QtCore/../../src/corelib/global/qglobal.h:2505: error: 'dynamic_cast_will_always_fail_because_rtti_is_disabled' is not a member of 'MyClass*'

Впрочем, при ближайшем рассмотрении я склоняюсь к мысли, что это баг в qmake. Я скомпилил проект в 4.8.2 и подсунул ему либы от 4.8.3. Всё заработало, чего не могло быть, если бы RTTI в либах отсутствовало.

P.S. Ну её на фиг! Откатываюсь на 4.8.2.


Название: Re: Qt 4.8.3 вышел
Отправлено: Serr500 от Сентябрь 19, 2012, 22:14
Ха!.. Всё ещё интереснее, чем я думал! Эти ошибки только в сборке для MinGW. В vs2010 ничего такого нет! И rcc нормально запускается, и на dynamic_cast не ругается.

Если каталог для ini файла не существует (на Windows XP - C:/Documents and Settings/<user>/Application Data/<organization>, на Windows 7 - C:/Users/<user>/AppData/Roaming/<organization>), то конфиг создан не будет.
Windows 7, MSVC 2010. Каталог создался.


Название: Re: Qt 4.8.3 вышел
Отправлено: Alex Custov от Сентябрь 19, 2012, 23:10
Windows 7, MSVC 2010. Каталог создался.

То есть указанный создаёт каталог именно в 4.8.3, и при этом каталог до этого не существовал?


Название: Re: Qt 4.8.3 вышел
Отправлено: Serr500 от Сентябрь 20, 2012, 08:05
То есть указанный создаёт каталог именно в 4.8.3, и при этом каталог до этого не существовал?
Да. Именно 4.8.3, каталог специально проверил перед запуском - его не было.

P.S. Уточнение: Windows 7 x64, Qt 4.8.3 vs2010 x86, vs2010 SP1.


Название: Re: Qt 4.8.3 вышел
Отправлено: Serr500 от Сентябрь 20, 2012, 08:24
Alex Custov, Вы не поверите!..
Рабочая машина: Windows 7 x86, Qt 4.8.3 MinGW x86. Каталог создался!


Название: Re: Qt 4.8.3 вышел
Отправлено: Alex Custov от Сентябрь 20, 2012, 13:39
у меня не создаётся, хотя у меня кастомная сборка Qt, но это не должно влиять... Видимо влияет.

Up. Судя по исходникам это происходит потому, что QTemporaryFile отключён в моей сборке, а в QSettings проблемы с логикой в этом случае.


Название: Re: Qt 4.8.3 вышел
Отправлено: OS2 от Сентябрь 20, 2012, 14:02
Нда, судя по каментам, забавный релиз получился...


Название: Re: Qt 4.8.3 вышел
Отправлено: Странник от Сентябрь 20, 2012, 15:20
Нда, судя по каментам, забавный релиз получился...
ругали ноклу, ждали светлого будущего = )