【问题标题】:How can I exclude source file metadata from output when compiling?编译时如何从输出中排除源文件元数据?
【发布时间】:2023-03-06 17:24:01
【问题描述】:

例如:

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

我怎样才能从gcc 和其他编译器的输出中排除这些不必要的和暴露的元数据?无论输出是程序集文件、目标文件还是可执行文件,它都会出现。

【问题讨论】:

    标签: gcc compilation metadata executable binaryfiles


    【解决方案1】:

    男人带(1)

    > strip -s a.out
    

    【讨论】:

    • 我可以strip 一个目标文件并且之后仍然能够链接它吗?我并不是真的打算剥离实际的功能标签。
    • @Matt 是的,我相信是的。 strip --strip-debug aaa.o 应删除调试信息,但保留功能标签不变。您可以使用 nmreadelf 实用程序检查 .o 中的符号。同样对于共享对象,您可能需要检查--strip-unneeded 选项
    猜你喜欢
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2019-06-19
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    相关资源
    最近更新 更多