天,
之前有人问过 VC++,但我对 Solaris 的答案很感兴趣。
我正在编译和链接以下琐碎的 C 代码:
#include <stdio.h>
int main() {
printf("Hello world!\n");
return 0;
}
使用命令:
cc -o hello1 hello.c
并这样做几次以获得可执行文件 hello2 和 hello3。这是在同一台机器上使用相同的编译器并在不同的时间在同一目录中完成的。
可执行文件的大小相同,但 diff 报告二进制文件不同,并且 cmp -l 因一长串不同位置而疯狂。
任何人都知道 cc 在可执行文件中嵌入了什么以使它们不同吗?时间戳?
编辑:按照 Chris 的建议剥离可执行文件,使 diff 将两个可执行文件报告为相同。
干杯,