Сохраняются ли искаженные имена в C ++ при компиляции на разных компьютерах? - PullRequest
6 голосов
/ 20 марта 2011

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

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

1 Ответ

9 голосов
/ 20 марта 2011

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

Отклонения в версии компилятора более вероятны.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...