Как мога да изключа метаданните на изходния файл от изхода при компилиране?

Например:

$ 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
Може ли I strip обектен файл и пак да може да го свърже след това? Всъщност не възнамерявах да премахна етикетите на действителните функции. - person Matt; 07.02.2015
comment
@Matt Да, вярвам, че е така. strip --strip-debug aaa.o ще премахне информацията за отстраняване на грешки, но ще остави етикетите на функциите непокътнати. Можете да проверите символи в .o с помощта на помощната програма nm или readelf. Също така за споделени обекти може да искате да проверите опцията --strip-unneeded - person Severin Pappadeux; 07.02.2015