Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt.
Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...
В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут).
Есть ли тулза, которая:
1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками.
2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).
Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x?
Большой ли выигрыш это дает с точки зрения размера?
21.01.10 12:44: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: Optimized Qt?
От:
Аноним
Дата:
23.01.09 09:44
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt. А>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...
А>В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут). А>Есть ли тулза, которая: А>1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками. А>2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).
А>Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x? А>Большой ли выигрыш это дает с точки зрения размера?
попробуй собирать qt со статической линковкой. полагаю, что компиллер должен "откидывать" неиспользуемый код qt и тем самым "оптимизировать" размер твоей софтинки.
Re[2]: Optimized Qt?
От:
Аноним
Дата:
23.01.09 09:55
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt. А>>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...
А>>В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут). А>>Есть ли тулза, которая: А>>1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками. А>>2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).
А>>Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x? А>>Большой ли выигрыш это дает с точки зрения размера?
А>попробуй собирать qt со статической линковкой. полагаю, что компиллер должен "откидывать" неиспользуемый код qt и тем самым "оптимизировать" размер твоей софтинки.
к сожалению, именно это как раз не подходит (планируется, что софтинка closed source, а Qt — LGPL).
Re[3]: Optimized Qt?
От:
Аноним
Дата:
23.01.09 10:05
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Аноним, Вы писали:
А>>>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt. А>>>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...
А>>>В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут). А>>>Есть ли тулза, которая: А>>>1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками. А>>>2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).
А>>>Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x? А>>>Большой ли выигрыш это дает с точки зрения размера?
А>>попробуй собирать qt со статической линковкой. полагаю, что компиллер должен "откидывать" неиспользуемый код qt и тем самым "оптимизировать" размер твоей софтинки.
А>к сожалению, именно это как раз не подходит (планируется, что софтинка closed source, а Qt — LGPL).
можно приобрести коммерческую версию qt
Re[4]: Optimized Qt?
От:
Аноним
Дата:
23.01.09 10:11
Оценка:
Здравствуйте, Аноним, Вы писали:
А>...
А>можно приобрести коммерческую версию qt
Да, возможно придется это сделать.
Но хотелось бы рассмотреть эту возможность в последнюю очередь, т.к. просто нецелесообразно делать это в случае решения перечисленных вопросов.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Аноним, Вы писали:
А>>>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt. А>>>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...
А>>>В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут). А>>>Есть ли тулза, которая: А>>>1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками. А>>>2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).
А>>>Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x? А>>>Большой ли выигрыш это дает с точки зрения размера?
А>>попробуй собирать qt со статической линковкой. полагаю, что компиллер должен "откидывать" неиспользуемый код qt и тем самым "оптимизировать" размер твоей софтинки.
А>к сожалению, именно это как раз не подходит (планируется, что софтинка closed source, а Qt — LGPL).
и рыбку съесть и ног не замочить?
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>...
А>>можно приобрести коммерческую версию qt
А>Да, возможно придется это сделать. А>Но хотелось бы рассмотреть эту возможность в последнюю очередь, т.к. просто нецелесообразно делать это в случае решения перечисленных вопросов.
если уж стоит такой выбор — попробуйте GPL ную собрать статически и посмотреть сколько реально выигрываете... если имеет смысл — покупайте — нет — LGPL и динамическая линковка.
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
Re[4]: Optimized Qt?
От:
Аноним
Дата:
23.01.09 13:19
Оценка:
Здравствуйте, Denys V., Вы писали:
DV>... DV>и рыбку съесть и ног не замочить?
Не понимаю... Вам кажется, что это плохо?
Re: результат
От:
Аноним
Дата:
27.01.09 08:17
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt. А>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...
Собирал qt 4.4.3 с выключенными rtti, exceptions, accessibility(интересно, кто нибудь использует эту красоту?), qt3support.
Резльтат по размеру —
hello world статически слинкованный пример с одним виджетом, — 6.02 Мб, зависимость только от системных библиотек windows.
Он же запакованный — 2.8 метра.
Почему-то не собирались примеры с веб китом... Постоянно показывались ошибки линковки на классы, экспортируемые из QtWebKit, хотя сам libQtWebKit.a собрался.