在VS链接错误描述中,“@@ YAHXZ”是什么意思?

时间:2017-12-04 19:53:34

标签: c++ visual-studio linker-errors

我想了解此类错误的@@YAHXZ部分:

  

错误LNK2019未解析的外部符号“int __cdecl func2(void)”   (?func2 @@ YAHXZ)在函数_main。

中引用

这只是一个例子,但我已经看到了其他类型的奇怪信件,我现在就不记得了。我在哪里可以找到关于它们的解释?

1 个答案:

答案 0 :(得分:3)

这称为«name mangling»,或«名字装饰»。

由于C ++支持函数重载,因此符号名称以特定方式生成,通常基于参数的类型。

以下是Microsoft网站上的官方文档:
https://msdn.microsoft.com/en-us/library/56h2zst2.aspx

修改

Microsoft不提供有关名称修饰的完整文档 如果您想知道符号的确切含义,我建议您阅读 Agner Fog关于调用约定的文档
http://www.agner.org/optimize/calling_conventions.pdf