Комментарии 36
Для четвертых версий Qt рекомендовали использовать jom для быстрой многоядерной сборки, сильно сокращало время. Не пробовали?
Еще, наверное, можно cmake'ом (оно должно уметь им конфигурироваться) создавать проекты для msbuild, а не nmake, msbuild достаточно новая разработка, должен хорошо параллельно собирать.
Еще, наверное, можно cmake'ом (оно должно уметь им конфигурироваться) создавать проекты для msbuild, а не nmake, msbuild достаточно новая разработка, должен хорошо параллельно собирать.
Командой set CL=/MP мы указываем, скорее всего, утилите nmake что у нас несколько ядер:
К сожалению, не утилите nmake, а лишь компилятору cl
Я собирала jom-ом, но правда версию Qt 4. Подтверждаю, действительно очень быстро собирается
На официальном сайте тоже предлагается использовать jom, но правда:
И я что-то побоялся — уже устал от ошибок компиляции.
Если и вправду быстрее, может зря побоялся?..
Note however, that it has issues with module interdependencies, which can cause builds to fail.
И я что-то побоялся — уже устал от ошибок компиляции.
Если и вправду быстрее, может зря побоялся?..
не знаю, билдил 2012 студией еще 19 декабря, когда Qt 5.0.0 вышел!, не было таких проблем, только когда добавляешь в Qt Creator — ругался ворнингом, что The compiler 'Microsoft Visual C++ Compiler' 11.0 (x86) can not produce code for the Qt version 'Qt 5.0.0, но всё билдилось и запускалось без каких-либо проблем.
Умеете привлечь названием.
Умеете привлечь названием.
«Нужны перл, питон и руби».
А почему не еще 20 скриптовых языков? Что мешало построить систему сборки на одном?
А почему не еще 20 скриптовых языков? Что мешало построить систему сборки на одном?
Вопрос, чем обосновано требование не использовать Express версию? компилятор же тот же самый, разве нет?
Это же только для работы аддона, правильно?
Это же только для работы аддона, правильно?
И еще странно: я релиз не собирал, но собирал бету и RC под VS2010, обходилось без Ruby, в официальных вики тоже про него ничего нет. Вы это где нашли? Для вебкита что ли нужен?
Компилятор тот же самый. К тому же, для сборки Qt будет достаточно одного компилятора из поставки Windows SDK,
т.е. установка самой IDE не обязательна.
т.е. установка самой IDE не обязательна.
Разве?
msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx
«The Windows SDK no longer ships with a complete command-line build environment. You must install a compiler and build environment separately», у меня и в 7 SDK компилятора нет.
msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx
«The Windows SDK no longer ships with a complete command-line build environment. You must install a compiler and build environment separately», у меня и в 7 SDK компилятора нет.
теперь это отдельный модуль и не обязательно часть SDK
www.microsoft.com/en-us/download/details.aspx?id=35515
www.microsoft.com/en-us/download/details.aspx?id=35515
в Express версии не идут некоторые хедеры, без них не собрать
на тему D3DCOMPILER_46.dll
blogs.msdn.com/b/chuckw/archive/2012/05/07/hlsl-fxc-and-d3dcompile.aspx
это компонент DirectX — установите его Runtime в SxS и будет все отлично
Папка с исходными файлами выросла с 700 – 800 Мб, до 10 Гб!
и раньше так было
Этот параметр определяет будущее ваших будущих приложений на Qt (не знаю как сказать по-другому). Если он указан (хотя, по-моему, определен по умолчанию) то все собранные приложения будут зависеть от наличия установленных библиотек на машине. То есть с переносом даже на соседский компьютер будет беда. Для сборки независимых приложений следует указывать -static. Но будущие приложения существенно вырастут в размере (10 кб против 10 мб в простой программе helloworld с GUI)
epic *facepalm*
1) компилируете Qt с встраиваемыми icu и внешними библиотеками
2) переносите Qt*5.dll и все
Для сборки независимых приложение -static — только в том случае если оно некоммерческое — т.к. Qt под двойной лицензий EULA/LGPL — а static тем самым уже несовместима с LGPL
Не на 10MB а на размер подключенных общих библиотек, однако хорошо сжимается тем-же UPX. Если только QtCore — то где-то 7MB, если еще WebKit и Photon — то все 25MB
По какой-то непонятной мне причине designer и assistant из этой сборки не запускаются
Dependency Walker и нет проблем ;)
Я не знаю, сколько длилась сборка, час, два или больше, но при попытке собрать qtwebkit утилита nmake вывалилась из-за отсутствия какого-то win_flex.
Если Вас забанили в Google — то помогаю https ://codereview.qt-project.org/#change,43190 (пробел убрать — т.к. хабрапарсер неверно иначе парсит URL)
win_flex — это утилита из GNU Tools Binary Component
blogs.msdn.com/b/chuckw/archive/2012/05/07/hlsl-fxc-and-d3dcompile.aspx
это компонент DirectX — установите его Runtime в SxS и будет все отлично
Папка с исходными файлами выросла с 700 – 800 Мб, до 10 Гб!
и раньше так было
Этот параметр определяет будущее ваших будущих приложений на Qt (не знаю как сказать по-другому). Если он указан (хотя, по-моему, определен по умолчанию) то все собранные приложения будут зависеть от наличия установленных библиотек на машине. То есть с переносом даже на соседский компьютер будет беда. Для сборки независимых приложений следует указывать -static. Но будущие приложения существенно вырастут в размере (10 кб против 10 мб в простой программе helloworld с GUI)
epic *facepalm*
1) компилируете Qt с встраиваемыми icu и внешними библиотеками
2) переносите Qt*5.dll и все
Для сборки независимых приложение -static — только в том случае если оно некоммерческое — т.к. Qt под двойной лицензий EULA/LGPL — а static тем самым уже несовместима с LGPL
Не на 10MB а на размер подключенных общих библиотек, однако хорошо сжимается тем-же UPX. Если только QtCore — то где-то 7MB, если еще WebKit и Photon — то все 25MB
По какой-то непонятной мне причине designer и assistant из этой сборки не запускаются
Dependency Walker и нет проблем ;)
Я не знаю, сколько длилась сборка, час, два или больше, но при попытке собрать qtwebkit утилита nmake вывалилась из-за отсутствия какого-то win_flex.
Если Вас забанили в Google — то помогаю https ://codereview.qt-project.org/#change,43190 (пробел убрать — т.к. хабрапарсер неверно иначе парсит URL)
win_flex — это утилита из GNU Tools Binary Component
Только не надо советовать UPX (аналоги) использовать, пожалуйста. Он абсолютно бессмыслен, если дистрибутив пожат LZMA (к примеру), более того, UPXнутые Qt*5.dll после упаковки в инсталлер или 7z архив дадут прирост порядка 5-10% (в зависимости от комплекта), что с точки зрения дистрибуции глупо, ибо все стремятся как раз к минимизации дистрибутива.
На винде при стандарной установке Qt 5.0.1 + VS 2010 для запуска приложения (QtGui+QtWidgets) в директории с приложением должны быть:
1) директория platforms с файлами qwindows.dll и qminimal.dll
2) Библиотеки аппаратного (и не очень) ускорения рисования интерфейса: D3DCompiler_43.dll, libEGL.dll, libGLESv2.dll
3) три библиотеки ICU: icudt49.dll, icuin49.dll и icuuc49.dll
4) Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll и так далее, всё как раньше с Qt4.
При невыполнении пунктов 1 или 2 программа будет просто закрываться без выдачи ошибок.
Подробно написано на qt-project.org/doc/qt-5.0/qtdoc/deployment-windows.html
1) директория platforms с файлами qwindows.dll и qminimal.dll
2) Библиотеки аппаратного (и не очень) ускорения рисования интерфейса: D3DCompiler_43.dll, libEGL.dll, libGLESv2.dll
3) три библиотеки ICU: icudt49.dll, icuin49.dll и icuuc49.dll
4) Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll и так далее, всё как раньше с Qt4.
При невыполнении пунктов 1 или 2 программа будет просто закрываться без выдачи ошибок.
Подробно написано на qt-project.org/doc/qt-5.0/qtdoc/deployment-windows.html
qminimal — это просто пример для создания таких плагинов. Для запуска приложения он не нужен. Достаточно только qwindows.dll
Спасибо за список, я-то как дурак выяснял все зависимости при помощи depends.exe, при этом определить необходимость platform-плагинов было весьма нетривиально…
Вот ещё беда, у меня
Вот ещё беда, у меня
icudt49.dll
весит ажно 17 мегабайт! Больше, чем Qt5Сore, Qt5Gui и Qt5Widgets
вместе взятые! Не знаете, как с этим можно побороться, отключить ICU? А то как-то грустно выходит, что ради маленькой утилитки на 200 Кб тянется 30+ Мб библиотек.Папка с исходными файлами выросла с 700 – 800 Мб, до 10 Гб!
make clean
должно исправить ситуацию.Но будущие приложения существенно вырастут в размере (10 кб против 10 мб в простой программе helloworld с GUI).
Вы замеряли? Для Qt 5 с теми же настройками? Тогда это очень неплохой результат, учитывая, что стандартные библиотеки со стандартными настройками весят ~40 МБ (из них половина на ICU).
Я тестил — ответ НЕТ. Static сборка позволяет вырезать лишние модули которые не задействуются, для ICU можно отключить часть языков — размер будет меньше.
Например теже модули MS Visual C++ Runtime компилируют в динамике — другой вопрос — ЗАЧЕМ? Их вполне можно скомповать в каждый модуль (благо размер небольшой)
Например теже модули MS Visual C++ Runtime компилируют в динамике — другой вопрос — ЗАЧЕМ? Их вполне можно скомповать в каждый модуль (благо размер небольшой)
«собирал qtwebkit уже часов 8 к ряду.»
Вот это вы терпеливый. Я бы не выдержал и получаса и взял бы нормальную виртуальную винду на амазоне и собрал бы все за полчаса.
Вот это вы терпеливый. Я бы не выдержал и получаса и взял бы нормальную виртуальную винду на амазоне и собрал бы все за полчаса.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Сборка Qt5 в Visual Studio 2012 или я могу пришить глаз кенгуру пока течет мой любимый кетчуп