59 / 35 / 8
Регистрация: 06.06.2013
Сообщений: 145
1

Слишком большой размер dll

06.06.2013, 22:12. Показов 2673. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Сделал первую программу на Qt 5.0.1, С++, отлично работает. Тем не менее, хочется понять некоторые моменты.

Сборка динамическая, соответственно проект хочет кучу библиотек. С одной стороны, это меня устраивает, так как в будет удобно пополнять список программ новыми компактными экзешниками. С другой стороны - требуемые dll весят под 400 МБ.. Не то чтобы с нынешними винчестерами это большая проблема, но все равно не приятно. Вот список dll, необходимых в моем случае для ХР и 7:

D3DCompiler_43.dll
icudt49.dll - 17,5 МБ
icuin49.dll
icuuc49.dll
libEGLd.dll
libgcc_s_sjlj-1.dll
libGLESv2d.dll - 15,6 МБ
libstdc++-6.dll
libwinpthread-1.dll
msvcp100.dll
msvcr100.dll
Qt5Cored.dll - 72,8 МБ
Qt5Guid.dll - 134,4 МБ
Qt5Network.dll
Qt5Widgetsd.dll - 132,9 МБ
platforms/qwindows.dll
platforms/qwindowsd.dll - 12,9 МБ

1. Можно ли чем-то заменить монстров, у которых вес за сотню мегабайт? Или это такая Qt 5, и ничего с этим не поделаешь?
2. Хочется узнать, за что каждая из библиотек отвечает, чего может не доставать при переносе на другие системы. В особенности интересуют вот эти ребята: D3DCompiler_43.dll, msvcp100.dll, msvcr100.dll.
3. Можно ли что-то прописать в .pro, чтобы задвинуть библиотеки в подкаталог, например? Не дописывая переменные среды.

И вдогонку:
4. Что означают флаги -L и -l при подключении сторонних библиотек?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2013, 22:12
Ответы с готовыми решениями:

Сжатие файлов. Или слишком большой вес приложения Qt
Всем привет. Я после того как сделал небольшое приложение на Qt, заметил, что, если добавлять...

Большой размер текста в TextEdit qml
Собсно, проблема в следующем: Имеем текстовые файлы, размерами 10 Кб, 100 Кб, 1Мб, обработчик на...

Слишком большой размер массива
Здраствуйте! Я объявляю массив: unsigned long long int N; cin >> N; int *a1 = new int; ...

Размер файла apk слишком большой
Скомпилировал на C++ Builder XE6 самое простое приложение под Андроид и оно получилось 4...

5
Почетный модератор
11307 / 4281 / 439
Регистрация: 12.06.2008
Сообщений: 12,339
06.06.2013, 22:50 2
Цитата Сообщение от Anvis Посмотреть сообщение
Можно ли чем-то заменить монстров, у которых вес за сотню мегабайт?
Собери в режиме Release, тогда нужны будут Qt'шные библиотеки без буквы d на конце... а они гораздо компактнее. А которые с буквой d - это для сборки Debug.
1
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
06.06.2013, 22:53 3
3. Нет нельзя
4. -L говорит о том что дальше идет каталог где искать библиотеки при линковке/компилировании -l говорит о том какую библиотеку непосредственно подключать.
1
59 / 35 / 8
Регистрация: 06.06.2013
Сообщений: 145
07.06.2013, 05:37  [ТС] 4
Спасибо) Собралось с таким списком, взятым из "C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin" :

icudt49.dll
icuin49.dll
icuuc49.dll
libEGL.dll
libgcc_s_sjlj-1.dll
libGLESv2.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Network.dll
Qt5Qml.dll
Qt5Quick.dll
Qt5V8.dll
Qt5Widgets.dll

45 МБ, и без всяких папок "platforms". По крайней мере, на моем компьютере. Днем потестирую на рабочем)
0
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
07.06.2013, 05:56 5
Цитата Сообщение от Anvis Посмотреть сообщение
Спасибо) Собралось с таким списком, взятым из "C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin" :

icudt49.dll
icuin49.dll
icuuc49.dll
libEGL.dll
libgcc_s_sjlj-1.dll
libGLESv2.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Network.dll
Qt5Qml.dll
Qt5Quick.dll
Qt5V8.dll
Qt5Widgets.dll

45 МБ, и без всяких папок "platforms". По крайней мере, на моем компьютере. Днем потестирую на рабочем)
Вообще, как я заметил, если компилить в "старом" 4.7.1/4.7.4/4.8.0, то файлов получается в разу меньше. Вот собирал проект на 5.0.1, получилось так же (столько же и те же файлы, как у вас), собрал в 4.7.4 (или 4.8.1, не помню), получил вроде 4-5 .dll и вес "всего" 5 мб
1
59 / 35 / 8
Регистрация: 06.06.2013
Сообщений: 145
07.06.2013, 09:36  [ТС] 6
Насколько помню, 5.0 было проще установить, да и вообще инстинкт подсказывает, что более новые версии обычно перспективнее) И кажется, в 4 версии был чуть более хитрый путь подключения ui-хедеров. А так как сейчас решающую роль для меня играет скорость обучения и простота реализации программ, лишние 40 МБ переходят на второй план. Но спасибо за подсказку)

Добавлено через 3 часа 11 минут
На рабочем компьютере с Qt и Семеркой пришлось добавить D3DCompiler.dll. Запустилось. Перенес на чистый XP - пишет Runtime Error, this application has requested the Runtime to terminate it in unusual way. И советует обратиться к команде разработчиков приложения... Если честно - без понятия, как это обойти.

Добавлено через 9 минут
Вопрос снят. Оно хотело библиотеки для платформ.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2013, 09:36
Помогаю со студенческими работами здесь

Можно ли как-то исправить слишком большой размер файла при подключении библиотеки iostream?
Здравия всем! если откомпилировать это: #include <stdio.h> int main() { ...

Слишком большой вектор
Добрый день,ребята, столкнулась с такой проблемой: необходимо создать вектор размерностью 2^32, но...

Слишком большой JSON?
На этапе получения JSON приходит обрубок без четверти окончания всех данных и в логе жалоба что не...

Слишком большой архив
Привет всем Такая проблема: Аутглюк 2007 не может открыть архив, пишет "Невозможно открыть набор...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru