![]() |
|
![]() ![]() ![]() |
|
psiallon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.8.2009 Где: Оренбург Репутация: нет Всего: 1 |
Недавно начал изучать C++, пользовался Visual C++ и C++ Builder, недавно решил попробовать Qt Creator (как я понимаю, компилятор там - minGW). Так вот, меня сильно удивило, что этот IDE очень долго создает сборку, а потом я еще взглянул на размер исполняемого файла и чуть со стула не упал...
Например вот эта, простейшая программа:
занимает ~300кбайт жесткого диска... |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 11 Всего: 33 |
это с компилятором по умолчанию. поставь gcc-4.4.0
Это потому что ты не посчитал суммарный объем длл-ок Visual C++ которые тебе придется таскать со своей программой. Выйдет куда более! ![]() -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 1 Всего: 459 |
При статической линковке всего в релизе билдер дает примерно те же результаты. Кой чего из этого уже присутствует в системе, но не гарантированно. Если компилировать с 2008й студией, то почти наверняка в системе не будет необходимых библиотек. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
psiallon, это еще цветочки. Если создашь прогу с Qt, то объем будет еще больше, особенно, если посчитать сам Qt (более 4МБ).
Кстати, имей в виду, что программа собранная в режиме debug имеет большой размер, так как содержит информацию для отладки. Чтобы удалить эту информацию, нужно воспользоваться командой strip --strip-unneeded <path/to/exe> или пересобрать в release. |
|||
|
||||
psiallon |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.8.2009 Где: Оренбург Репутация: нет Всего: 1 |
Можете рассказать, как это сделать, если не затруднит?
Я так понимаю, статическая линковка - это когда весь необходимый код из библиотек, помещается в один исполняемый файл программы? Т.е. делается это для того, что бы можно было без проблем запустить программу на другой машине? И еще, можно ли изменить режим линковки на "нестатический" и таскать нужные библиотеки вместе с программой?
Ясно, спасибо...
Спасибо, я в курсе, компилил в режиме release. |
||||||||
|
|||||||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Это из-за stl. Используй Сишный printf() и программа резко упадет в размерах. |
|||
|
||||
psiallon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.8.2009 Где: Оренбург Репутация: нет Всего: 1 |
Точно! Спасибо большое! Уменьшил размер программы в 60 раз! ![]() Это сообщение отредактировал(а) psiallon - 10.9.2009, 16:56 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |