在不同的计算机上编译时,C ++受损名称是否保持一致?

时间:2011-03-20 17:34:32

标签: c++ gcc export name-decoration

一般来说,我在Linux上使用nm观察到的是T符号名称(我感兴趣)在不同的计算机上保持一致,即使我不使用{{ 1}}。我的观察是否正确?

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

1 个答案:

答案 0 :(得分:9)

计算机,一天中的时间或天气对名称损坏造成影响是非常不寻常的。

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

但许多Linux平台为C ++定义了一个ABI(应用程序二进制接口),其中包括名称修改规则。在这些平台上,无论优化级别,编译器版本,主机名,硬盘序列号,一天中的时间,天气,您最喜欢的运动队是否在上周丢失,或者任何因素都没有,相同的源代码将编译为相同的错位名称在ABI中明确提到。