编译没有无关的信息

时间:2017-07-18 19:24:39

标签: c gcc

假设我有一个简单的C文件。

#include <stdio.h>

int main() {
    printf("It works!\n");
    return 0;
}

如何编译C源代码,以便生成的二进制文件不会泄漏有关我的信息?即。编译一个匿名二进制文件

如果我只是使用

  

gcc main.c

在上面的来源

然后

  

字符串a.out

我得到输出,如

  

GLIBC_2.2.5

在文本编辑器中浏览a.out,我可以找到

  

lib64下/ LD-Linux的x86-64.so.2

     

海湾合作委员会:(Ubuntu 5.4.0-6ubuntu1~16.04.4)5.4.0 20160609

即使在strip a.out之后,二进制文件中仍有很多识别信息

编辑: 提出此问题的原因

我很年轻,希望得到编程工作。

但是,我想在创建“专业”回购之前创建一个“测试”回购。

我知道我可以删除“测试”,但它可能会在某处存档(archive.org)。

我不能制作“私人”存储库,因为它是付费功能

“test”repo将包含我已编写的代码(但代码的样式与我现在编写代码的方式不同),我还想编译并将其添加到GitHub版本中。

“pro”repo将包含我从现在开始编写的代码。

我不希望雇主知道作者是同一个人

1 个答案:

答案 0 :(得分:0)

动态链接需要

GLIBC_2.2.5/lib64/ld-linux-x86-64.so.2。你只能通过使用静态链接(不建议在GNU / Linux上支持)来摆脱它。

要删除编译器标识,请使用-Qn选项进行编译。