Версия для печати темы
Форум на CrossPlatform.RU _ Qt Общие вопросы _ Оптимальная компиляция своего ПО под Windows
Автор: Litkevich Yuriy 20.1.2008, 16:06
Тут глянул спомощью проги "Dependency Wallker" что хочет моя Qt'явая прога, собраная с помощью MinGW-32:
kernel32.dll
mingwm10.dll
msvcrt.dll
QtCore4.dll
QtGui4.dll
Потом посмотрел что хочет Opera-9.23:
kernel32.dll
user32.dll
У нее в каталоге еще лежат dll'ки:
Opera.dll
OUniAnsi.dll
spellcheck.dll
(ни одна не ртебует ничего в стиле Qt***.dll)
Как бы мне так собрать софтину чтобы только виндовые dll'ки нужны были, а то я смотрю размер моей софтины 38КиБ.
такую бы и распространять
Автор: archimed7592 20.1.2008, 16:18
Со статическими либами собери(сначала их самих собрать нужно).
Автор: Litkevich Yuriy 20.1.2008, 16:26
а я не представляю как статическую сборку делать, может подскажешь где прочитать.
Автор: Swappp 20.1.2008, 16:30
Цитата
а я не представляю как статическую сборку делать, может подскажешь где прочитать.
Фактически просто указать ключ -static на этапе configure. Как собирается Qt тут вроде был перевод. Но при статической линковки размер исполняемого файла сильно увеличится...
Автор: Litkevich Yuriy 20.1.2008, 16:44
Цитата(Swappp @ 20.1.2008, 19:30)
...размер исполняемого файла сильно увеличится...
т.е. это как в Борланде будет при вкл. крыжике "Build with runtime library", метра 3 весом получается, то, что было 700к.
я правильно понял?
Выходит "38 попугаев" мне не видать
Автор: archimed7592 20.1.2008, 17:31
Цитата(Swappp @ 20.1.2008, 16:30)
актически просто указать ключ -static на этапе configure.
Если не ошибаюсь, ещё в .pro нужно CONFIG += static (или что-то вроде этого).
Цитата(Litkevich Yuriy @ 20.1.2008, 16:44)
т.е. это как в Борланде будет при вкл. крыжике "Build with runtime library", метра 3 весом получается, то, что было 700к.
Типа того. Зато не будет требовать библиотек с магическими для пользователя именами
.
Автор: Swappp 20.1.2008, 17:45
Цитата
Если не ошибаюсь, ещё в .pro нужно CONFIG += static (или что-то вроде этого).
Этого не требуется.
Цитата
т.е. это как в Борланде будет при вкл. крыжике "Build with runtime library", метра 3 весом получается, то, что было 700к.
я правильно понял?
Да, причем будет не 3Мб, а еще больше
Хотя если использовать только то, что входит в QtCore наверно получится не очень большой, но вот QtGui слишком тяжелый...
Автор: Litkevich Yuriy 20.1.2008, 19:08
А каков принцип статической сборки, он в мой целевой экзешник засунет dll'ки целиком или только ту их часть что моя прога использует?
И еще, безотнасительно статической/динамической сборки, я так понимаю при компиляции если в неком классе имеется 60 методов, а используется только 10, компилер все равно все засовывает?
Автор: archimed7592 20.1.2008, 19:26
Цитата(Litkevich Yuriy @ 20.1.2008, 19:08)
компилер все равно все засовывает?
Компилятор засовывает всё. Другой вопрос, что выкинет компоновщик. Тут зависит от конкретного компоновщика.
Автор: Litkevich Yuriy 20.1.2008, 19:32
у Меня MinGW32, т.е. GCC.
Я полагаю, что здравую оптимизацию можно ожидать только от платных продуктов.
И еще, слышал есть проект на SF.net типа Qt переписаные под WinAPI т.е. чтобы все минимально весило и максимально быстро ворочилось, кто нибудь может проних что нибудь сказать, насколько это все путнее?
Автор: archimed7592 20.1.2008, 19:38
Цитата(Litkevich Yuriy @ 20.1.2008, 19:32)
Я полагаю, что здравую оптимизацию можно ожидать только от платных продуктов.
Зря ты так полагаешь. Порой, GCC дерёт платную MSVC...
На тему интелекта компоновщика я как раз сейчас кое с кем http://forum.vingrad.ru/index.php?showtopic=192137&view=findpost&p=1385952(если интересны доводы и контрдоводы).
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)