Мне было скучно, и я пытался поэкспериментировать с различными вариантами gcc, чтобы посмотреть, какие двоичные файлы я могу создать.
Я нашел флаг -s
в ld64, который предположительно не включает информацию таблицы символов в исполняемый файл. Страница man для ld64 говорит, что флаг игнорируется.
Страница руководства для gcc говорит, что это опция компоновщика (что для меня подразумевает, что это означает, что он просто включит флаг -s
на ld64, когда он вызывается) и ничего не упоминает о игнорировании.
Кажется, это не игнорируется ...
me@dinosaurhunter ~/bin/c> cat small.c
int main(void) { return 1; }
me@dinosaurhunter ~/bin/c> gcc -Wall small.c -o small
me@dinosaurhunter ~/bin/c> wc -c small
12564 small
me@dinosaurhunter ~/bin/c> gcc -Wall -s small.c -o small
ld64: warning: option -s is obsolete and being ignored
me@dinosaurhunter ~/bin/c> wc -c small
12468 small
Если флаг устарел и игнорируется - почему размер двоичных файлов различается?