Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Qt Creator - большой размер *.EXE


Автор: psiallon 10.9.2009, 10:49
Недавно начал изучать C++, пользовался Visual C++ и C++ Builder, недавно решил попробовать Qt Creator (как я понимаю, компилятор там - minGW). Так вот, меня сильно удивило, что этот IDE очень долго создает сборку, а потом я еще взглянул на размер исполняемого файла и чуть со стула не упал...
Например вот эта, простейшая программа:
Код

#include <iostream>

using namespace std;

int main()
{
    int x, y;

    cout << "Enter numbers: ";
    cin >> x >> y;

    cout << "Summ: " << x + y;

    return 0;
}

занимает ~300кбайт жесткого диска...

Автор: andrew_121 10.9.2009, 11:31
Цитата(psiallon @  10.9.2009,  10:49 Найти цитируемый пост)
что этот IDE очень долго создает сборку

это с компилятором по умолчанию. поставь gcc-4.4.0

Цитата(psiallon @  10.9.2009,  10:49 Найти цитируемый пост)
а потом я еще взглянул на размер исполняемого файла и чуть со стула не упал...

Это потому что ты не посчитал суммарный объем длл-ок Visual C++ которые тебе придется таскать со своей программой. Выйдет куда более! smile 

Автор: Alexeis 10.9.2009, 11:55
Цитата(psiallon @  10.9.2009,  09:49 Найти цитируемый пост)
занимает ~300кбайт жесткого диска... 

  При статической линковке всего в релизе билдер дает примерно те же результаты. 
Цитата(andrew_121 @  10.9.2009,  10:31 Найти цитируемый пост)
Visual C++ которые тебе придется таскать со своей программой.

  Кой чего из этого уже присутствует в системе, но не гарантированно. Если компилировать с 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
Цитата

то с компилятором по умолчанию. поставь gcc-4.4.0

Можете рассказать, как это сделать, если не затруднит?
Цитата

При статической линковке всего в релизе билдер дает примерно те же результаты.

Я так понимаю, статическая линковка - это когда весь необходимый код из библиотек, помещается в один исполняемый файл программы? Т.е. делается это для того, что бы можно было без проблем запустить программу на другой машине?
И еще, можно ли изменить режим линковки на "нестатический" и таскать нужные библиотеки вместе с программой?
Цитата

psiallon, это еще цветочки. Если создашь прогу с Qt, то объем будет еще больше, особенно, если посчитать сам Qt (более 4МБ).

Ясно, спасибо...
Цитата

Кстати, имей в виду, что программа собранная в режиме debug имеет большой размер, так как содержит информацию для отладки. Чтобы удалить эту информацию, нужно воспользоваться командой strip --strip-unneeded <path/to/exe> или пересобрать в release.

Спасибо, я в курсе, компилил в режиме release.

Автор: SABROG 10.9.2009, 14:49
Цитата(psiallon @  10.9.2009,  10:49 Найти цитируемый пост)
занимает ~300кбайт жесткого диска... 


Это из-за stl. Используй Сишный printf() и программа резко упадет в размерах.

Автор: psiallon 10.9.2009, 16:56
Цитата(SABROG @ 10.9.2009,  17:49)
Цитата(psiallon @  10.9.2009,  10:49 Найти цитируемый пост)
занимает ~300кбайт жесткого диска... 


Это из-за stl. Используй Сишный printf() и программа резко упадет в размерах.

Точно! Спасибо большое! Уменьшил размер программы в 60 раз! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)