Составлены ли C ++, искаженные именами, остаются последовательными при составлении на разных компьютерах?

StackOverflow https://stackoverflow.com/questions/5370201

Вопрос

В общем, то, что я наблюдал, используя nm на Linux это T Имена символов (которые мне интересны) оставайтесь последовательными на разных компьютерах, даже если я не использую extern "C". Анкет Мое наблюдение правильно?

Примечание Я использую GCC на всех компьютерах.

Это было полезно?

Решение

Было бы очень необычно для компьютера, времени суток или погоды, чтобы повлиять на искажение имени.

Что с большей вероятностью вызывает отклонения, так это различия в версии компилятора.

Но многие платформы Linux определяют ABI (двоичный интерфейс приложения) для C ++, который включает в себя, среди прочего, правила «Ужасное». На этих платформах тот же исходный код будет компилироваться с теми же изуродованными именами независимо от уровней оптимизации, версий компилятора, имени хоста, серийного номера жесткого диска, времени суток, погоды, будь то любимая спортивная команда на прошлой неделе или какой -либо фактор не явно упоминается в ABI.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top