Когда я дважды компилирую простой файл test.cpp с использованием компилятора xlC в AIX:
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 предоставляют od
а также diff
программы, которые вы могли бы использовать, но я не знаю, доступны ли они под AIX.