Pull to refresh

Comments 33

Неужели чтобы работала 100килобайтная, программа написанная на дотнете, нужно ставить .NET Framework?
Он входит по умолчанию в дистрибутив винды
в XP — второй, в Vista — третий

В любом случае, в VS можно собрать программу с зависимостями в виде библиотек
Хотите статических библиотек — читайте документацию:
а вы чего ожидали? чтобы она вообще без винды работала?
У пользователя эти библиотеки должны ведь откуда-то взяться.
Наверное, некорректно спросил

«Как скомпилировать так, чтобы из этих библиотек взялось только то, что используется в программе?»

Как-то так)
ну так слинкуйте их статически. Линковщик возьмет только то, что реально используется.
Только обычно используется бОльшая часть кода этих библиотек :)
а как статически?
задаю в pro CONFIG+=-static — не катит
как параметр — нет такого параметра в qmake

в гугле не могу найти — все пишут что CONFIG+= должен помогать(
Сконфигурируйте Qt перед сборкой, чтобы она не DLL собирала, а статические библиотеки — configure -static.

В .pro файлах проекта ничего не нужно изменять.
Правда тривиальное приложение всё равно будет весить 4 метра при этом.
UFO just landed and posted this here
4.5 мегабайта с ним получилось)
UFO just landed and posted this here
Я тоже когда-то столкнулся с этой бедой.

Однако, у меня эта пара dll-ек заняла в программкой мегабайт шесть. Вроде не слишком много, и можно просто в какой-нибудь папочке/подпапочке проекта держать.
От mingw можно отказаться купив коммерческую версию QT (или дождавшись LGPL версии).
От остального избавится нельзя, но класть эти dll рекомендуется в папку программы, а не System32.
Эх...) Mingw библиотека самая легковесная) Лучшеб наоборот)
Qt 4.4 собирается студией, пользоваться mingw не обязательно.
Вы можете пересобрать Qt в режиме static. Для этого в корневом каталоге наберите «configure -static [… нужные опции...]», затем «mingw32-make».
только места вам это все равно не сэкономит — у вас просто будет большой экзешник размером под 16 мегабайт (в release-режиме).
а! То есть библиотеки — as is? Они не могут пересобраться только с нужными функциями?
Может, для этого в заголовках нужно точно указывать, какие именно классы нужны, а не QtCore/QtGui

А то я после статической сборки получил под 50 мегов.
Мои проекты не занимают более 20 мегабайт. Попробуйте указывать конкретно те классы, которые вам нужны.
Не могу вам сказать. По своим проектам я вижу, что при статической сборке экзешник получается примерно таким же по размеру, как все DLL-библиотеки (QtCore, QtGui, QtSql, ...), которые он использует. Хотя сравнение, конечно, некорректное.
в Qt3 была возможность собрать статик либы так как душа пожелает… у меня сетевой проект выходил на метр примерно со статической линковкой… но есть ли такая же гибкость в Qt4 не знаю, не пробовал…
upx'ом можно каким-нибудь еще упаковать, если размер имеет значение.
Спасибо за наводку)

Фактически разницы нет если не париться о размере после разворачивания из инсталлера, но штука классная
Что за дурацкая привычка измерять размер пустого проекта? Вы собираетесь пустой проект распространять? Нет? Тогда смысл?
Хочется минимизировать проект? пишите на ассемблере и все собственными руками.

Захотелось роскоши? Захотелось красивый интерфейс за пять минут? Соизвольте заплатить свободным местом на диске. А в одном файле это будет или в четырех по-моему нет никакой разницы.

И да. Раньше когда в винде не было предустановленного .NET, а это по-моему было еще в XP без сервиспаков, так что не так уж и давно, приходилось с проектом тащить в инсталлере 100мб фреймворка.
откуда столько агрессии в ответ на вопрос?
Да агрессия не на вопрос, вопрос то правильный, подход к проблеме не правильный.
UFO just landed and posted this here
Sign up to leave a comment.

Articles