总体而言,我使用Linux上的nm
观察到,我感兴趣的T
符号名称在不使用extern "C"
时,在不同的计算机上保持一致。我的观察是否正确?
注意:我在所有计算机上都使用gcc。
总体而言,我使用Linux上的nm
观察到,我感兴趣的T
符号名称在不使用extern "C"
时,在不同的计算机上保持一致。我的观察是否正确?
注意:我在所有计算机上都使用gcc。
计算机、时间或天气很少会影响名称混淆,这是非常不寻常的。
更可能导致偏差的是编译器版本的差异。
但许多Linux平台为C++定义了应用程序二进制接口(ABI),其中包括名称混淆规则。在这些平台上,相同的源代码将编译为相同的混淆名称,无论优化级别、编译器版本、主机名、硬盘序列号、时间、天气、你最喜欢的运动队上周是否输掉比赛或任何未在ABI中明确提到的因素。
man nm
。 - MrD