c++ - GCC C++ 名称修改引用

标签 c++ gcc g++ name-mangling

环顾四周,我看到的主要问题是关于对 C++ 符号进行分解,而不是如何分解它们。是的,可以调用 g++ , 使用 -S选项,在一些包含要修改的符号的虚拟代码上,然后检查生成的程序集,但我无法找到关于 GCC 名称修改的良好引用或规范。我能找到的最接近的地方是 http://www.int0x80.gr/papers/name_mangling.pdf ,但它似乎没有涵盖诸如名称模板实例如何被破坏或为什么_Z3fooIN3BarEE3FooIXT_EEv将转换为 Foo<Bar> foo<Bar>() (虽然我可以看出是怎么回事,但到底是什么 IXT_EE ?为什么在 N 之后没有 _Z?那是什么意思?)。

最佳答案

引自 source code of gcc's implementation of name mangling :

This file implements mangling of C++ names according to the IA64 C++ ABI specification.

以下是本规范的规则: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling

关于c++ - GCC C++ 名称修改引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41524956/

相关文章:

c++ - std::cout 不适用于结构的重载 '<<' 运算符

c++ - 奇怪的线程堆栈

c++ - STL push_back 优化导致数组下标超出数组边界

c++ - 在运行前对字符串进行操作

c++ - 使用G++的模板的编译错误,使用llvm编译正常

c++ - 如何从 steady_clock 返回耗时作为原始数据类型 (double)

c++ - 在表达式 bool << integer 中,bool 是提升为 int,还是提升为与整数相同的类型?

c - 为什么系统之间打印的位数不同?

c - scanf 函数在 GCC ubuntu 上不起作用

C++ 预处理器确保全局唯一字符串