为什么aix上的xlC编译器总是为相同的c++源代码生成不同的对象文件

Why xlC compiler on aix always generates different object files for the same c++ source code?

本文关键字:c++ 文件 对象 代码生成 xlC 上的 aix 编译器 为什么      更新时间:2023-10-16

当我在AIX上使用xlC编译器编译一个简单的test.cpp文件两次时:

xlC_r test.cpp -o test1
xlC_r test.cpp -o test2

那么test1和test2是不同的!他们有不同的md5sum。

但是当我在linux上做同样的事情时(当然是用g++而不是xlc),那么test1和test2是一样的。。。

有人能告诉我为什么在AIX中会发生这种奇怪的行为吗??

感谢

是的,编译器在创建的每个对象文件中都存储一个时间戳。从编译器的12.1版开始,可以在编译时指定-qnotimestamps选项来抑制时间戳的存储。

也许它在编译的程序中包含了一个时间戳。您可以尝试通过保存每个程序的八进制或头进制转储并比较结果来找到它们的不同之处。许多UNIX变体提供了可以使用的oddiff程序,但我不知道它们在AIX下是否可用。