gcc输出的目标文件是否可以在相同源的编译与相同选项之间变化?

Aru*_*M S 5 c gcc code-generation

目标文件(C语言)的gcc输出在编译之间是否有所不同?没有特定于时间的信息,编译选项或源代码没有变化.链接库,环境变量也没有变化.这是一个VxWorks MIPS64交叉编译器,如果有帮助的话.我个人认为不应该改变.但我观察到有时随机,指令产生了变化.我不知道是什么原因.任何人都可以对此有所了解吗?

Mih*_*eac 0

为什么它应该有所不同?结果总是一样。尝试这个:

for i in `seq 1000`; do gcc 1.c; md5sum a.out; done | sort | uniq | wc -l
Run Code Online (Sandbox Code Playgroud)

答案总是1。更换1.ca.out以满足您的需要。

上面统计了多次gcc编译同一个源代码时生成了多少个不同的可执行文件1000