| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Qt Creator - большой размер *.EXE |
| Автор: psiallon 10.9.2009, 10:49 | ||
| Недавно начал изучать C++, пользовался Visual C++ и C++ Builder, недавно решил попробовать Qt Creator (как я понимаю, компилятор там - minGW). Так вот, меня сильно удивило, что этот IDE очень долго создает сборку, а потом я еще взглянул на размер исполняемого файла и чуть со стула не упал... Например вот эта, простейшая программа:
занимает ~300кбайт жесткого диска... |
| Автор: Alexeis 10.9.2009, 11:55 |
При статической линковке всего в релизе билдер дает примерно те же результаты. Кой чего из этого уже присутствует в системе, но не гарантированно. Если компилировать с 2008й студией, то почти наверняка в системе не будет необходимых библиотек. |
| Автор: bsa 10.9.2009, 12:06 |
| psiallon, это еще цветочки. Если создашь прогу с Qt, то объем будет еще больше, особенно, если посчитать сам Qt (более 4МБ). Кстати, имей в виду, что программа собранная в режиме debug имеет большой размер, так как содержит информацию для отладки. Чтобы удалить эту информацию, нужно воспользоваться командой strip --strip-unneeded <path/to/exe> или пересобрать в release. |
| Автор: psiallon 10.9.2009, 12:19 | ||||||||
Можете рассказать, как это сделать, если не затруднит?
Я так понимаю, статическая линковка - это когда весь необходимый код из библиотек, помещается в один исполняемый файл программы? Т.е. делается это для того, что бы можно было без проблем запустить программу на другой машине? И еще, можно ли изменить режим линковки на "нестатический" и таскать нужные библиотеки вместе с программой?
Ясно, спасибо...
Спасибо, я в курсе, компилил в режиме release. |
| Автор: SABROG 10.9.2009, 14:49 |
Это из-за stl. Используй Сишный printf() и программа резко упадет в размерах. |
| Автор: psiallon 10.9.2009, 16:56 | ||
Точно! Спасибо большое! Уменьшил размер программы в 60 раз! |