Комментарии 43
Без QML и WebKit не так интерестно. Часто проблемы бывают именно с последним, поэтому открывая статью расчитывал на полную компиляцию.
+1
А смысл тогда на Qt5 переходить? C++11 не используется, Qt Quick 2 не используется, JSON скорее всего не используется. В сухом остатке ровно тоже самое, что и в случае с Qt4 плюс куча времени на сборку.
+4
qt4 уже развиваться не будет, только фиксы. Переход, я считаю, лучше сделать раньше, чем позже. С перспективой на будущие технологии (часть из которых, которые Вы упомянули). Некоторые модули Qt5 еще откровенно сыроваты.
+2
Тогда что мешает на msvc2010 хотя бы перейти и включить C++11? Компилятор в составе sdk вполне себе бесплатный, а разработка как я понимаю всё равно идет в креаторе?
+1
разработка идет в VS2008
0
НЛО прилетело и опубликовало эту надпись здесь
Можно на MinGW 4.7.2 перейти, я так в конце концов поступил. А 2012 разве ни Windows 8 Only?
-1
НЛО прилетело и опубликовало эту надпись здесь
Нет, на Win7 хорошо работает.
0
В MSVC2012 есть опции сборки, чтобы можно было собрать под msvc2012-winxp. Судя по информации в интернете, включение такой опции в конфиг сборки qt не предвидится.
0
А в чем сложность через configure самому эту опцию включить? Я так понимаю это всего лишь пара флагов для компилирования и линковки?
0
Вот в декабре зашевелились в CMake:
www.cmake.org/Bug/bug_relationship_graph.php?bug_id=13774&graph=relation
Про то, как включать опцию «v110_xp target» руками в консоли:
blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx
www.cmake.org/Bug/bug_relationship_graph.php?bug_id=13774&graph=relation
Про то, как включать опцию «v110_xp target» руками в консоли:
blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx
0
Простой и удобный способ не требовать установки Visual C++ 2008 Redistrubutable package, это таскать с собой 3 файла:
msvcp90.dll, msvcr90.dll и Microsoft.VC90.CRT.manifest
А CRT разве статически нельзя прилинковать?
0
можно. В каждую qtшную dll по экземпляру CRT? Так никто обычно не делает.
0
Поясняю — обычно CRT компилируют внутрь если Вы распространяете C++ Runtime вместе с программой.
0
Не понял ход Ваших мыслей.
Если использовать статическую линковку при компиляции qt (подправив mkspecs), то каждая из qt-шных действительно не будет требовать C++ Runtime, но копия рантайма будет в КАЖДОЙ dll-ке Qt, при этом вашей программе тоже надо будет использовать этот Code Generation, и в Вашем exe тоже будет копия CRT.
В моем случае будет 5 копий CRT
Если использовать статическую линковку при компиляции qt (подправив mkspecs), то каждая из qt-шных действительно не будет требовать C++ Runtime, но копия рантайма будет в КАЖДОЙ dll-ке Qt, при этом вашей программе тоже надо будет использовать этот Code Generation, и в Вашем exe тоже будет копия CRT.
В моем случае будет 5 копий CRT
0
Учитывая сколько потребляет сам Qt — CRT просто мизер + уменьшает проблемы с разделяемыми библиотеками.
Не под embedded же компилируете, и экономить на скрепках тут не имеет смысла.
P.S. скомпилируйте тогда Qt в виде 1ой DLL — типа Qt5.dll (ну кроме плагинов) — тогда будет самое верное решение — 2 копии CRT и нет проблем.
Не под embedded же компилируете, и экономить на скрепках тут не имеет смысла.
P.S. скомпилируйте тогда Qt в виде 1ой DLL — типа Qt5.dll (ну кроме плагинов) — тогда будет самое верное решение — 2 копии CRT и нет проблем.
-1
Это нарушение лицензии LGPL
PS. Но можете написать туториал как скомпилировать все в одну DLL ;)
PS. Но можете написать туториал как скомпилировать все в одну DLL ;)
0
Если Вы НЕ читали LGPL то советую перечитать — делаем ОТДЕЛЬНУЮ DLL и тем самым «Произведение использующее библиотеку Qt + даем ссылку на патч который позволяет сделать такую сборку» — все — проблемы нету.
0
Напишите туториал, как Вы сделаете всё в одной DLL, без голословия.
Merely the LGPL software-parts need to be modifiable by end-users (via source code availability)
0
Замечание: поскольку мне не нужна компиляция qtactiveqt, qtdeclarative, qtwebkit и прочих, а необходима только qtbase (Qt5Core/Qt5Gui/Qt5Network/Qt5Widgets/Qt5Sql/etc) и qttools (assistant, designer, etc), configure я буду запускать только в qtbase, тогда как при полной компиляции библиотеки configure следует запускать в корне.
Достаточно сконфигурировать из корня, а потом запустить nmake с параметром module-qtbase. В этом случае нет необходимости обходить «баг самостоятельной компиляции».
Замечание 2: по умолчанию qt5 пытается использовать OpenGL 2/Angle, для компиляции которого необходим DirectX SDK. Поскольку QML2 и OpenGL2 мне не нужен, я использую опцию configure -opengl desktop, которая скажет QtGui использовать старый opengl32.dll (стандарт OpenGL 1.1, есть в любой Windows XP и выше).
Если не нужны ни Angle, ни QML2, то проще указать -no-opengl
+1
Hint 1:
При конфигурации, указав параметр -mp, можно ускорить время сборки, распараллелив ее на все ресурсы процессора.
Hint 2:
Так же полезно указывать -nomake tests -nomake examples, чтобы избежать излишней компиляции.
При конфигурации, указав параметр -mp, можно ускорить время сборки, распараллелив ее на все ресурсы процессора.
Hint 2:
Так же полезно указывать -nomake tests -nomake examples, чтобы избежать излишней компиляции.
+3
А никто еще не сообразил какой-нибудь Qt runtime? Ну типа поставил один раз на машине и все программы юзают. Просто делать пакеты для маленьких программ, запаковывая туда весь Qt, очень большие инсталляшки получаются.
0
Core/Gui/Network/Widgets при упаковке в инсталляк занимают около 5МБ
-1
А у меня само приложение допустим килобайт 300 занимает. А приложений мне нужно скинуть человеку штук 5 по почте… Надеюсь понятно куда я клоню…
0
Соберите свой инсталяк\MSI-пакет, который будет разворачиваться в систему и прописывать себя в PATH, тогда другие приложения смогут идти и без библиотек.
0
Угу, тут вспоминаешь как в первые два года тяжело с дистрибуцией .Net'а дела шли, а ты предлагаешь homebrew в массы продвинуть, еще и остальным девелоперам рассчитывать на то, что оно установлено.
0
Я думаю внутри отдельной взятой конторы такой способ может прокатит. Все равно продавать этот софт не планируется. Хотя более общий вариант конечно был бы предпочтительней.
0
Да и в рамках одной, отдельно взятой, конторы это бессмысленно чуть более, чем полностью. Если это dev-машины, с Qt нет проблем. А иметь два варианта дистрибьюции — для мира и для внутрянки — это, имхо, не лучшая трата ресурсов.
0
Нет, большинство машин не dev и даже не имеют админских прав на установку чего-либо. Причем машины не все в одном месте, а есть и удаленные, в других городах. Ну короче я не знаю как проталкивать по 20 МБ лишнего «мусора» с каждой 300 КБ программкой, да еще и по корпоративной почте.
+1
Core/Gui/Network/Widgets при упаковке в инсталляк занимают около 5МБ
-1
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Сборка Qt 5.3.0 в Visual Studio 2008