Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на 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КиБ.
такую бы и распространять :p

Автор: 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)