Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Igors от Июнь 10, 2015, 15:41



Название: Избавиться от ICUxxx
Отправлено: Igors от Июнь 10, 2015, 15:41
Добрый день

Обновился до 5.4.2 но она тянет пачку ICUxxx.dll которые мне совершенно не нужны. Есть ли Вындоуз сборка без них? Если нет то киньте плиз толковую ссылку чего набирать в configure (делал год назад и все уже забыл)

Спвсибо


Название: Re: Избавиться от ICUxxx
Отправлено: Tver-Soft.org от Июнь 10, 2015, 22:25
Попробуйте сборки отсюда: http://tver-soft.org/qt64 (http://tver-soft.org/qt64), у них зависимость от icu*.dll присутствует только у WebKit, который без ICU не собирается. Сейчас я выложил 5.4.2 только для msvc2013, остальные версии будут чуть позже. (Подох основной билд-сервер, поэтому компилируется на более слабой машине.)

киньте плиз толковую ссылку чего набирать в configure
Configure был вот такой (из отчёта build-скрипта):
Код
DOS
Qt configuration options:
-debug-and-release
-opensource
-confirm-license
-plugin-sql-sqlite
-plugin-sql-odbc
-no-neon
-no-ssse3
-no-sse4.1
-no-sse4.2
-no-avx
-no-avx2
-qt-zlib
-qt-pcre
-qt-libpng
-qt-libjpeg
-dbus
-audio-backend
-wmf-backend
-qt-style-windowsxp
-qt-style-windowsvista
-opengl
dynamic
-openssl
-plugin-sql-mysql
-prefix
c:\Qt\5.4.2\qt-5.4.2-x64-msvc2013
-platform
win32-msvc2013
 

P.S. Официальная сборка 5.4.2 какая-то странноватая. Digia ранее указывала, что они избавились от зависимостей ICU во всём, кроме WebKit и 5.4.1 была без зависимостей. Но новые сборки почему-то вновь тащат с собой icu*.dll.


Название: Re: Избавиться от ICUxxx
Отправлено: Igors от Июнь 11, 2015, 10:06
Спасибо, но видимо только самому (и msvc 2012 и 32 бита). Кое-как собрал, правда вылетела но все нужные модули успели собраться. Конечно хотелось бы "ис каропки"  :)


Название: Re: Избавиться от ICUxxx
Отправлено: carrygun от Июнь 11, 2015, 11:09
Где-то на уровне слухов было, что якобы в 5.5 будет такое из коробки.


Название: Re: Избавиться от ICUxxx
Отправлено: Tver-Soft.org от Июнь 11, 2015, 12:07
Спасибо, но видимо только самому (и msvc 2012 и 32 бита). Кое-как собрал, правда вылетела но все нужные модули успели собраться. Конечно хотелось бы "ис каропки"  :)
msvc2012 будет к следующей неделе. Первый пакет (64-bit, OpenGL Dynamic) уже собирается.


Название: Re: Избавиться от ICUxxx
Отправлено: Tver-Soft.org от Июнь 12, 2015, 10:30
Пакеты, собранные msvc2012, выложены.


Название: Re: Избавиться от ICUxxx
Отправлено: Akon от Июнь 20, 2015, 14:25
Собираю сейчас Qt 5.4.2 под Win32 c mingw-builds 4.9.1. Процесс у меня прервался (мля, ну почему это всегда крайне редко работает сразу?), но Qt5Core собралось. Так вот, там нет зависимости от ICU.

dumpbin /dependents Qt5Core.dll:
Код:
Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file Qt5Core.dll

File Type: DLL

  Image has the following dependencies:

    ADVAPI32.dll
    libgcc_s_dw2-1.dll
    KERNEL32.dll
    MPR.DLL
    msvcrt.dll
    ole32.dll
    libwinpthread-1.dll
    SHELL32.dll
    USER32.dll
    WS2_32.dll
    libstdc++-6.dll

  Summary

        1000 .CRT
        4000 .bss
        2000 .data
       3F000 .edata
       72000 .eh_fram
        3000 .idata
      19D000 .rdata
       13000 .reloc
        1000 .rsrc
      2AD000 .text
        1000 .tls



Похоже, что только WebKit зависит от ICU. Но, если не ошибаюсь, в configure есть возможность управлять зависимостью от ICU... Да, и вот http://doc.qt.io/qt-5.4/windows-requirements.html:
Цитировать
Qt WebKit, and applications using it, always need the ICU libraries. Qt Core can be configured to either rely on ICU functionality, or fall back to Windows API and internal algorithms with somewhat reduced functionality.

From Qt 5.3 and onwards, configure does not link Qt Core against ICU libraries anymore by default. This reduces the size of a self-contained application package considerably, as long as Qt WebKit is not used.

Letting Qt Core utilize the ICU libraries however has following advantages:
Behavior matches other platforms more closely.
Extended set of text codecs (see QTextCodec).
QLocale::toUpper(), QLocale::toLower() always use case conversion rules specific to the locale.
QCollator::setNumericMode() does work consistently on all Windows versions.

To explicitly enable the use of ICU in Qt Core, pass -icu to configure:
configure -icu
Удачи.


Название: Re: Избавиться от ICUxxx
Отправлено: Akon от Июнь 20, 2015, 16:43
О-о. У меня поперло дальше - использую mingw32-make из mingw вместо make из msys.