C++名称修饰在不同计算机上编译时是否保持一致?

6

总体而言,我使用Linux上的nm观察到,我感兴趣的T符号名称在不使用extern "C"时,在不同的计算机上保持一致。我的观察是否正确?

注意:我在所有计算机上都使用gcc。


@Space_C0wb0y:请查阅man nm - MrD
谢谢,我今天学到了新东西! - Björn Pollex
1个回答

9

计算机、时间或天气很少会影响名称混淆,这是非常不寻常的。

更可能导致偏差的是编译器版本的差异。

但许多Linux平台为C++定义了应用程序二进制接口(ABI),其中包括名称混淆规则。在这些平台上,相同的源代码将编译为相同的混淆名称,无论优化级别、编译器版本、主机名、硬盘序列号、时间、天气、你最喜欢的运动队上周是否输掉比赛或任何未在ABI中明确提到的因素。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接