• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Почему разный размер компиляции

  • Автор темы edoc
  • Дата начала
E

edoc

Пробую учить C++ по книжке "Джесс Либерти - Освой С++ самостоятельно за 21 день"
там даётся такой исходник:
---------------------------------------------
#include <iostream.h>

int main()
{
cout << "Hello World !\n";
return 0;
}
---------------------------------------------
написано скомпилировать, но не написано как.
прога Code Blocks + MinGW скомпилировала файл размером "465920 bytes"
консольный Borland C++ Compiler 5.5 скомпилировал файл размером "112640 bytes"
прога Dev-C++ 4 + MinGW (версия 2000-ного года) скомпилировала файл размером ~70KB
прога Dev-C++ 5 beta (4.9.9.2) + MinGW скомпилировала файл размером "474990 bytes", а при включеной опции ""strip executable" выходит файл размером "266240 bytes"
я ваще не разбираюсь чё по чём, но кажется многовато весит это всё дело на выходе, а где то видел что MinGW может скомпилировать "Hello World" размером 5KB.

НАДЕЮСЬ ПОМОЖЕТ КТО НИБУТЬ
P/S: Кто нибуть пробовал прогу "Relo", как в ней компилятор или линковщик настраивать, а то она только .obj выдаёт, а остальные кнопки не функционируют.
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Было странно если бы странно если бы размеры были одинаковыми. Команды высокоуровнего языка(ну не подобрал выражения лучше) можно представить различным набором машиных инструкций.

я ваще не разбираюсь чё по чём, но кажется многовато весит это всё дело на выходе, а где то видел что MinGW может скомпилировать "Hello World" размером 5KB.

Можно и меньше, причем не только MinGW. Большей размер вызван скорее всего отладочной информацией и отключеной оптимизацией + рантайм библиотека.
 
E

edoc

А подскажите рецепт как сделать мелкий файл в MinGW или др. без всяких рантайм и отладок. Или как настроить это например в Code Blocks, хотя наверное все юзают другие проги :) .
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
MinGW это вроде порт GCC под винду.
Опций компидяциии и линковки в GCC предостаточно. Пересказывать их желания нет, посмотри в мане или поищи в нете(например opennet.ru).

Или как настроить это например в Code Blocks
Да этих front-end IDE как собак не резаных.
 
E

edoc

если компилятор делает из исходника размером 89 байт бинарник размером 73-440 KB это просто УЖАС
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!