Как проще всего снизить размер выходных бинарников mingw ну и gcc?

А то жирные больно...
Имеется в виду 1) опции компилера и 2) оптимизация на ур-не исходников.
el kamikaze wrote:
> Как проще всего снизить размер выходных бинарников mingw ну и gcc? А
> то жирные больно...
strip не пробовал?
> Имеется в виду 1) опции компилера
-Os
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Здравствуйте, el kamikaze, Вы писали:
EK>Как проще всего снизить размер выходных бинарников mingw ну и gcc?
А то жирные больно...
EK>Имеется в виду 1) опции компилера и 2) оптимизация на ур-не исходников.
-g (по умолчанию стоит) — убирает всю debug-info
-O0 — убирает оптимизацию
лучше всего снизить размер — это использовать *.so вместо *.a если это возможно конечно

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
0rc>-g (по умолчанию стоит) — убирает всю debug-info
?????
3.9 Options for Debugging Your Program or GCC
GCC has various special options that are used for debugging either your program or GCC:
-g
Produce debugging information in the operating system's native format (stabs, COFF, XCOFF, or DWARF 2). GDB can work with this debugging information.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
0rc>>-g (по умолчанию стоит) — убирает всю debug-info
L_L>?????

-g0 конечно же, спасибо
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, 0rc, Вы писали:
0rc>Здравствуйте, Lorenzo_LAMAS, Вы писали:
0rc>>>-g (по умолчанию стоит) — убирает всю debug-info
L_L>>?????
0rc>
0rc>-g0 конечно же, спасибо
упс, давно не смотрел минимальный 1

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
ну, благодаря тебе, я узнал про g0
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>ну, благодаря тебе, я узнал про g0
угу, я насоветовал сегодня, пора в отпуск мне.

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
0rc>угу, я насоветовал сегодня, пора в отпуск мне.
какой опцией заставить сгенерить асм и чтоб строки ишодного кода остались ?
Lorenzo_LAMAS wrote:
> 0rc>угу, я насоветовал сегодня, пора в отпуск мне.
>
> какой опцией заставить сгенерить асм и чтоб строки ишодного кода остались ?
-S ?
Posted via RSDN NNTP Server 2.0 beta
Здравствуйте, Lorenzo_LAMAS, Вы писали:
0rc>>угу, я насоветовал сегодня, пора в отпуск мне.
L_L>какой опцией заставить сгенерить асм и чтоб строки ишодного кода остались ?
man gcc
не прикалывайся

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Lorenzo_LAMAS, Вы писали:
0rc>>угу, я насоветовал сегодня, пора в отпуск мне.
L_L>какой опцией заставить сгенерить асм и чтоб строки ишодного кода остались ?
Это как? Можно просто asm ключиком -S.
А для уменьшения размера юзать добавочно ключики линкера.
gcc -O3 -g0 -Wl,-x,-s
а ещё полезно посмотреть
gcc --help
... << RSDN@Home 1.1.3 stable >>
RB>gcc --help
>> man gcc
Не народ, ну вы приколисты
Я все это знаю конечно. Я имел в виду посерьезней, Прошу прощения если вопрос звучал по-идиотски
Изменю постановку вопроса.
1) имеем проект под MSVC.
2) имеем оптимизацию по СКОРОСТИ + для разных файлов проекта разная + под AMD и Интел заточки. Плюс в коде ассемблерные вставки (немного и на FASM, так что перенос не проблема).
3) настраиваем линкер как надо (стрип там и все такое).
4) получаем бинарник значительно жирнее чем от cl.
Вопрос звучит так: приложив минимум усилий по рефакторингу и ручной оптимизации, заставить бинарник максимально уменьшиться. Или вообще так: что конкретно оптимизировать в коде?
Насколько я понял, gcc/ld
1) создает кучу сегментов в EXE-шнике, может их в меньшее число слить? Кк это проще сделать? Линкер скрипт? Это первое что мне в голову приходит, я просто в особенностях gcc плохо разбираюсь.
2) при компиляции плохо предсказывает использование регистров? и видимо долго переливает из пустого в порожнее, что на быстродействии положительно не сказывается, а большое число команд засирает кэш почем зря.
Просто никогда с gcc дела не имел, а вот вдруг потребовалось перетащить проект на mingw и линух. Думаю кто-то уже побывал в подобной ситуации.