Автор
|
Тема: Большой размер
|
dimedrol |
опубликован 18-04-2001 20:12 MSK
Почему exeэ'шники которыя я компиляю на С++ такого большого размера(меньше,чем 100 кб у меня никогда не получалось)?
|
DEiL
|
опубликован 18-04-2001 22:18 MSK
если ты в виж с++ - то поставь release, а если в с++ билдере - то не судьба браток, не судьба! =) |
matrix
|
опубликован 18-04-2001 22:44 MSK
Дык и вправду если енто не буилдер... visual c++ Project->seting-> Use MFC in Shared dll >закладка С/C++ убери: generate browse info >закладка С/C++ закладка link убери: grnerate debug info link incrementaty |
matrix
|
опубликован 18-04-2001 22:47 MSK
коряво как то написал по памяти...8)) ////
|
Demo_S
|
опубликован 19-04-2001 02:46 MSK
кого еще интересует создание супермелких приложений? вот я недавно изгалился - 8 кб. троянчик на VC++ скомпилял - не хило да:))) |
purpe
|
опубликован 19-04-2001 09:49 MSK
ты компилял-то в vc++ 1.0 ? :))) |
Demo_S
|
опубликован 19-04-2001 18:37 MSK
VC6.0 ;] |
DEiL
|
опубликован 19-04-2001 19:22 MSK
хм, я тоже компилил троянчик, но получилось 35 кило :))
|
Demo_S
|
опубликован 19-04-2001 22:22 MSK
Хм? можно без использования специальных средств скомпилить в 16 кб - нужно в настройках проэкта во вкладке link поставиь флажок ignore all default libraries, только тогда нужно будет все *.lib самому прописать. Далее можно поставить в разделе C/C++ компилять с директивой /NOWIN98 по-моему так, это значит что выравнивание будет не на 4 кб , а на 512 байт.(Ведь я думаю не секрет, что в откомпиленой проге дофига пустого места - нуляЮ добавляемые для выравнивания). Ну и последнее, можно компилить с подключенной специальной переписанной функцией winmain(кому надо мыльте вышлю) использование которой вообще позволяет снизит размер проги до 3-10 кб. Правда при этом неполучается отключить стандартные библиотеки, зато включение оптимизации (Projects Seetings->C/C++->Optimization) снижает размер проги еще на 2 кб. |
Demo_S
|
опубликован 19-04-2001 22:25 MSK
Да, вот еще что, - это все я делал в проге без MFC.А вообще-то интерестное дело - включение оптимизиции на минимизацию размера не дает выиграшав размере, как ни странно... при всех прочих обычных условия. |
matrix
|
опубликован 20-04-2001 03:16 MSK
Вожно файлик прижать..(ASPAK,PECOMPACT)/Написал прогу на Asme и тож самое на вижл никакого выиграша даж обидно.... Да Demo_S кини соусы по winmain буду очень признателен.... nias44@yahoo.com |
dimedrol
|
опубликован 25-04-2001 19:35 MSK
Компилял я на VC6.0 без MFC. Ну я убрал две галочки и пога чудесным образом кменьшилась на целых сто килобайт (с 176 до 78).Это просто круто. А кто мне объяснит что даёт grnerate debug info? Demo_S-не в службу ,а в дружбу вышли на dimedrol_2002@mail.ru,plz. Ну и ты,DIel,можешь своего коня выслать e-mail-см.выше. |
Demo_S
|
опубликован 25-04-2001 23:51 MSK
Ты лучше не галочки убирай, а в Build выбеои SetActiveConfiguration а в нем выбери Release. и готовый экзешник ищи в папочке Release, а не Debug. а твой GenerateDebug info генерируется в режиме компиляции программы для отладки, и сделано для того, чтобы можно было трасировать программу по одной команде. Кстати, всем кому интерестно, седня я разобрался, как откомпилить прогу на 8 кб без всяких там вклчючений переписанных winmain. |
aldep
|
опубликован 26-04-2001 12:49 MSK
И как? :) |
Demo_S
|
опубликован 26-04-2001 01:55 MSK
Компилил я консольное приложение, очень даже непустое. ну, я думаю понятно, что нужно это все проделывать при ActiveConfiguration - Release Значит так, идем в Project Settings(Alt+F7) и начинаем шаманить: во вкладке link ставим галочку в ignoredefault libraries, после этого нужно будет прописать нужные либы в строчечке над этим. затем в апциях (окошко в самом низу) добавляем следующую опцию после всех /opt:nowin98 - это означает что компилим с выравниванием 512 байт как в вин95 , а не 4 кбЮ как в вин98. ВСе, жмем Ок и F7
|
Mihail
|
опубликован 26-04-2001 10:49 MSK
А какие библиотеки нужны в приложении (по умолчанию)? |
Demo_S
|
опубликован 26-04-2001 19:35 MSK
в принципе можешь все сотавить. Я оставляю kernel32.lib advapi.lib и msvcrt.lib иногда еще нужно оставлять user32.lib и gdi32.lib |