2015-02-07 26 views
1

例如:編譯時如何從輸出中排除源文件元數據?

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

我怎樣才能排除的gcc和其他編譯器輸出這種不必要和揭示元數據?無論輸出是彙編文件,目標文件還是可執行文件,它都會顯示。

回答

3

男子條(1)

> strip -s a.out 
+0

可以的我'strip'一個目標文件,並仍然能夠之後將其鏈接?我真的不打算剝離實際的功能標籤。 – Matt 2015-02-07 03:57:28

+1

@Matt是的,我相信。 'strip --strip-debug aaa.o'將刪除調試信息,但保留功能標籤不變。您可以使用'nm'或'readelf'工具檢查.o中的符號。同樣對於共享對象,您可能需要檢查'--strip-unneeded'選項 – 2015-02-07 04:07:27