Как я могу исключить метаданные исходного файла из вывода при компиляции?

Например:

$ gcc -O3 foobar.c -o foobar
$ grep 'foobar\.c' foobar
Binary file foobar matches

Как я могу исключить такие ненужные и разоблачающие метаданные из вывода gcc и других компиляторов? Он появляется независимо от того, является ли вывод файлом сборки, объектным файлом или исполняемым файлом.


person Matt    schedule 07.02.2015    source источник


Ответы (1)


мужская полоска(1)

> strip -s a.out
person Severin Pappadeux    schedule 07.02.2015
comment
Могу ли я strip создать объектный файл и потом связать его? На самом деле я не собирался удалять фактические метки функций. - person Matt; 07.02.2015
comment
@ Мэтт Да, я так думаю. strip --strip-debug aaa.o должен удалить отладочную информацию, но оставить нетронутыми метки функций. Вы можете проверить символы в .o с помощью утилиты nm или readelf. Также для общих объектов вы можете проверить опцию --strip-unneeded - person Severin Pappadeux; 07.02.2015