Составлены ли C ++, искаженные именами, остаются последовательными при составлении на разных компьютерах?
-
27-10-2019 - |
Вопрос
В общем, то, что я наблюдал, используя nm
на Linux это T
Имена символов (которые мне интересны) оставайтесь последовательными на разных компьютерах, даже если я не использую extern "C"
. Анкет Мое наблюдение правильно?
Примечание Я использую GCC на всех компьютерах.
Решение
Было бы очень необычно для компьютера, времени суток или погоды, чтобы повлиять на искажение имени.
Что с большей вероятностью вызывает отклонения, так это различия в версии компилятора.
Но многие платформы Linux определяют ABI (двоичный интерфейс приложения) для C ++, который включает в себя, среди прочего, правила «Ужасное». На этих платформах тот же исходный код будет компилироваться с теми же изуродованными именами независимо от уровней оптимизации, версий компилятора, имени хоста, серийного номера жесткого диска, времени суток, погоды, будь то любимая спортивная команда на прошлой неделе или какой -либо фактор не явно упоминается в ABI.