• XSS.stack #1 – первый литературный журнал от юзеров форума

Размеры скомпиленых файлов в С++

LaN_DAo

CD-диск
Пользователь
Регистрация
20.11.2005
Сообщения
19
Реакции
0
Недавно начал изучать Си , до этого только кое что на паскале ваял. Поставил себе посмотреть что подрукой было(BORLAND C++ 3.1 & BORLAND C++ 3.1 for Windows, Microsoft Visual C++ 6.0) Поевились вопросы:

1) При создании фаила типа хело ворлд под С++ 3.1 прога (исходный ехе фаил) весит 22,9 кБ, в BORLAND C++ 3.1 for Windows 33 кБ , в Microsoft Visual C++ 6.0 занимает аж целых 172 кБ - немноголи это для программы такого типа ?
И отсюда вытекает сразу следующий вопрос - может всё дело в настройках компилятора и как тогда его толково настроить.

2) Пролистал преведущие топики узнал о существовании уже 7 и 8 версии Microsoft Visual C++ - актуальны ли преведущие вопросы там и стоит ли переходить на новые версии - отличаются ли они координально от преведущих версий или просто немного подправленые - пропатченые продукты и толку особого нет?
 
LaN_DAo
А мне кажется надо сразу переходить на более новые версии... ведь люди в мелкомягких не дураки... они ж не будут просто так выпускать новую версию...
кстати, 2005 студия кажется называется студией 9 :) во всяком случаи так пишется в проэктах в исходных файлах :)... ну или типа формат 9 студии 6-) :-P

Программы по типу хеллоу ворд ни о чем не говорят... ты ж не будешь писать такие проэкты ??? а вообще... ну типа считается что люди из борладна знают что надо подать на вход в винду и что получат они на выходе. А типа ребятя из мелкософта они ж знают этот черный ящик винду и типа у них должен быть более оптимизированный код... Конечно хеллоу ворд об этом не сильно говорит, но :)...
 
Lamer

Ну вообще-то Visual Studio 2005 - это восьмая версия.

ведь люди в мелкомягких не дураки... они ж не будут просто так выпускать новую версию...

Ну не скажи, иногда новая версия программы выпускается исключительно из коммерческих целей, чтобы просто повысить прибыль компании. А в ней могут быть просто удалены старые баги, и добавлены новые. У меня часто бывает: при компиляции появляется ошибка в *.h типа winuser.h правишь файл в блокнотике, ошибка исчезает! :angry:

ну типа считается что люди из борладна знают что надо подать на вход в винду и что получат они на выходе. А типа ребятя из мелкософта они ж знают этот черный ящик винду и типа у них должен быть более оптимизированный код...

Мне кажется разработки Borland'а тоже достойны уважения! IDE там оч. даже удобная. Кстати 7 - 8 студия очень много позаимствовала у Borland'a ИМХО

Еще довод в пользу борланда:
Фирма существует, значит продукция пользуется успехом! ИМХО
 
Ну начнем с того что у меня пустой проект (только пустая функция main) в MSVC 6.0 занимает 148 Кб. Но это в режиме debug, a в release этот же проект занимает 24 Кб, причем это с оптимизацией по скорости, а не по объему.
Просто в Debug версии полно отладочной инфы, куча блоков CC и 00.
CC - опкод int3, который использует отладчик чтобы понять на каком месте ему прерывать выполнение программы. Кстати дебаг версия очень неплохо сжимается всякими пакерами типа UPX, но в принципе нафиг жать debug версию =)
 
Deus
если совместить секции, убрать дефотлтные либы и снизить выравнивание, можно спокойно получить хеловорлд на 700 байт.
Код:
kernel32.lib user32.lib msvcrt.lib /NODEFAULTLIB /MERGE:.rdata=.text /MERGE:.data=.text
Это без выравнивания. С выравниванием могут быть проблемы при запуске или сжатии
 
Great

Я всегда юзаю выравнивание 16... а пакеры орут конечно) Если орут начинаю увеличивать в два раза пока орать не перестанут.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх