Почему компилятор xlC в aix всегда генерирует разные объектные файлы для одного и того же исходного кода c ++?

Когда я дважды компилирую простой файл 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?

Спасибо

1

Решение

Да, компилятор сохраняет временную метку в каждом объектном файле, который он создает. Начиная с версии 12.1 компилятора, можно указать опцию -qnotimestamps при компиляции, чтобы подавить сохранение временных меток.

2

Другие решения

Может быть, он включает метку времени в скомпилированной программе. Вы можете попытаться найти различия между ними, сохранив восьмеричный или шестнадцатеричный дамп каждой программы и сравнив результаты. Многие варианты UNIX предоставляют od а также diff программы, которые вы могли бы использовать, но я не знаю, доступны ли они под AIX.

0

По вопросам рекламы [email protected]