Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > уменьшить размер exe


Автор: TaNK 30.9.2009, 11:50
Всем привет. 1) поиск облазил...выяснил чтобы уменьшить размер исполняемого файла - испольвозать вместо cout  - printf() но С вариант изучаю все таки с++ ,да размер с 400 кб упал до 15...не нравится вариант такой...может какие настройки в самой среде выставить или Dec cpp (где то прочитал устаравшая и неподдерживамая) уже не актуальна? стоит еще VC++ 2008 EE но чего то она меня не в дохновляет..exe очень маленькие но сама создает кучу файлов..и проект выходит  4-5 метров...хотя cpp и exe вместе весят  20 кб
Что посоветуете счего начать..
Заранее спасибо.  

Автор: Rickert 30.9.2009, 11:52
TaNK, Имеется виду Release сборка?

Автор: zim22 30.9.2009, 12:00
Цитата(TaNK @  30.9.2009,  11:50 Найти цитируемый пост)
Что посоветуете счего начать..

с вопроса "действительно ли так важна разница в размере между 400 и 40 кбайт?"

Автор: TaNK 30.9.2009, 12:07
zim22  > Ну вот смотри когда если работать в Builder он может весит как 1 Мб и работать он будет на других компах...а может весит и 300 кб и работать будет только там где установлен Builder, соглашусь..не так критичен но хочется разобраться.

Rickert > не понял поясни 

Автор: zim22 30.9.2009, 12:17
Цитата(TaNK @  30.9.2009,  12:07 Найти цитируемый пост)
 он может весит как 1 Мб и работать он будет на других компах...а может весит и 300 кб и работать будет только там где установлен Builder

это зависит от параметров сборки (будет ли exe таскать с собой библиотеки или юзать установленные в системе). подробнее http://forum.vingrad.ru/forum/topic-233481.html.
Цитата(TaNK @  30.9.2009,  12:07 Найти цитируемый пост)
Rickert > не понял поясни 

в Release версии exe весит меньше, чем в Debug

Автор: TaNK 30.9.2009, 12:36

в Release версии exe весит меньше, чем в Debug

Найти бы это в настройках Dev cpp, где это может быть

Заранее спасибо.

Автор: andrew_121 30.9.2009, 13:12
Цитата(TaNK @  30.9.2009,  12:36 Найти цитируемый пост)
Найти бы это в настройках Dev cpp, где это может быть

Там используется единственная длл-ка, mingwm10.dll, объемом 15к)

Автор: TaNK 30.9.2009, 13:23
Цитата(andrew_121 @ 30.9.2009,  13:12)
Цитата(TaNK @  30.9.2009,  12:36 Найти цитируемый пост)
Найти бы это в настройках Dev cpp, где это может быть

Там используется единственная длл-ка, mingwm10.dll, объемом 15к)

Ее нада указать где то при выполнении проекта?

Автор: andrew_121 30.9.2009, 13:24
TaNK, Нет. Она линкуется автоматически.

Автор: TaNK 30.9.2009, 13:29
значит даже вот такой код 
Код

#include <iostream>

using namespace std;

int main (int argc, char *argv[])
{
    char quit;

    quit = '\0';
    while (quit != 'q')
    {
        cout << "Hello ! This is a console app." << endl;
        cout << "To create a console, go to Project Options and select" << endl;
        cout << "\'Win32 Console\'." << endl;
        cout << "Press q to quit " << endl;
        cin >> quit;
    }

    return 0;
}


будет занимать как минимум 400 кб и точка...меньше никак...или я туплю?

Автор: andrew_121 30.9.2009, 17:50
Цитата(TaNK @  30.9.2009,  13:29 Найти цитируемый пост)
будет занимать как минимум 400 кб и точка...меньше никак

никак.

Автор: bsa 30.9.2009, 17:55
TaNK, поищи в гугле слово upx.

Автор: Alca 30.9.2009, 17:56
Цитата

никак.

как

Автор: andrew_121 30.9.2009, 18:01
Alca, Что за код? Какие опции?

Автор: sQu1rr 30.9.2009, 18:29
Использовал той код, получил: 
debug: 37kb
final: 10kb
Все зависит только от компилятора. Использую MS и рад до одного места. Раньше gcc был лучше, а теперь как минимум на ровне. Вообщем юзайте другой компилятор

Автор: Alexeis 30.9.2009, 19:28
Цитата(sQu1rr @  30.9.2009,  17:29 Найти цитируемый пост)
Использую MS и рад до одного места.

  100 раз обсуждалось, у него рантайм библиотеки на несколько мегабайт. Попробуй откомилить в какой нить 2008й или 2010й студии и запустить на ХР. Наверняка не запуститься. Некоторые рантайм библиотеки студии могут присутствовать в системе, но на это нельзя рассчитывать.
  Все это фигня и ловля блох. Сейчас дисковое пространство не критично, а через инет можно передать тупо заархировав в инсталятор. Цель не оправдывает средства.

Автор: claygod 1.10.2009, 15:16
Цитата(andrew_121 @ 30.9.2009,  17:50)
Цитата(TaNK @  30.9.2009,  13:29 Найти цитируемый пост)
будет занимать как минимум 400 кб и точка...меньше никак

никак.

Если тоже самое откомпилить gcc но в Linux, 
то размер будет правильный (т.е. маленький).

Автор: Alca 1.10.2009, 15:18
Попробуйте скомпилить этим http://ru.wikipedia.org/wiki/Pelles_C

Добавлено через 26 секунд
http://www.smorgasbordet.com/pellesc/

Автор: TaNK 1.10.2009, 15:27
Цитата(Alca @ 1.10.2009,  15:18)
Попробуйте скомпилить этим http://ru.wikipedia.org/wiki/Pelles_C

Добавлено @ 15:18
http://www.smorgasbordet.com/pellesc/

Так это же для С, а не для С++ 

UPX не плохая программка

Автор: Alca 1.10.2009, 15:33
Цитата

UPX не плохая программка

Сжать всегда успеешь, а ты попробуй без UPX-а...

Добавлено через 1 минуту и 50 секунд
http://forum.sources.ru/index.php?showtopic=78927&hl=%F3%EC%E5%ED%FC%F8%E8%F2%FC,and,%F0%E0%E7%EC%E5%F0,and,exe
http://forum.sources.ru/index.php?showtopic=30680&hl=%F3%EC%E5%ED%FC%F8%E8%F2%FC,and,%F0%E0%E7%EC%E5%F0,and,exe
http://forum.sources.ru/index.php?showtopic=31356&hl=%F3%EC%E5%ED%FC%F8%E8%F2%FC,and,%F0%E0%E7%EC%E5%F0,and,exe
http://forum.sources.ru/index.php?showtopic=46965&hl=%F3%EC%E5%ED%FC%F8%E8%F2%FC,and,%F0%E0%E7%EC%E5%F0,and,exe

Автор: Rickert 1.10.2009, 17:03
Какие сжималки, пардон? Мы говорим о программировании и компиляторах или о том как заархивировать данные?
Цитата(andrew_121 @  30.9.2009,  13:12 Найти цитируемый пост)
Там используется единственная длл-ка, mingwm10.dll, объемом 15к) 

Поясните. Сказать честно я с Dev cpp не знаком, но по-моему слова debug & release - это не просто настройки компилятора мелкомягких, а целый свод правил для всех. Или я ошибаюсь? В Dev cpp нет разгроничения?

Автор: bsa 1.10.2009, 17:57
Цитата(Rickert @ 1.10.2009,  17:03)
Поясните. Сказать честно я с Dev cpp не знаком, но по-моему слова debug & release - это не просто настройки компилятора мелкомягких, а целый свод правил для всех. Или я ошибаюсь? В Dev cpp нет разгроничения?

Debug и Release - это профили сборки, различия которых заключаются в наборе ключей компиляции (в релизе ненужна отладочная информация, а в дебаге вредна оптимизация) и линкуемых библиотеках.

Автор: TaNK 2.10.2009, 09:19
Цитата(Rickert @ 1.10.2009,  17:03)
Какие сжималки, пардон? Мы говорим о программировании и компиляторах или о том как заархивировать данные?
Цитата(andrew_121 @  30.9.2009,  13:12 Найти цитируемый пост)
Там используется единственная длл-ка, mingwm10.dll, объемом 15к) 

Поясните. Сказать честно я с Dev cpp не знаком, но по-моему слова debug & release - это не просто настройки компилятора мелкомягких, а целый свод правил для всех. Или я ошибаюсь? В Dev cpp нет разгроничения?

вот чего и я ищу....где в этом Dev cpp настройки Realease и Debug

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