如何在 clang(或 gcc)中解构C++名称
How to demangle a C++ name in clang (or gcc)?
我正在尝试为clang编写一个快速而肮脏的demangler。我找到了一段使用 abi::__cxa_demangle
的代码,但我无法弄清楚它需要哪个标头。显而易见的选择是 ABI.h,但是:
demangle.cpp:2:10: fatal error: 'ABI.h' file not found
#include <ABI.h>
^
我需要使用什么abi::__cxa_demangle
?
include cxxabi.h
.在 Ubuntu 13 中,这个标头是 /usr/include/c++/4.x
x
是次要的 gcc 版本。
包括 cxxabi.h,但对于 Ubuntu 上的 clang,您需要安装软件包 libc++abi-dev。
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 预处理器:插入结构名称中的前一个行号
- 基类中的函数名称解析
- 模板元程序查找相似的连续类型名称
- 没有名称的C++模板参数
- C++中名称篡改的目的是什么
- 如何仅使用对象名称打印特定于对象的成员
- 将依赖名称显式标记为类型名和模板的奇怪之处
- 为什么 Clang 不允许"and"作为函数名称?
- 遮罩结构名称
- c++binary_search函数排序数组(流行名称搜索)出现问题
- RegGetValue在当前用户下找不到名称
- 如何打开并写入一个名称取自C++中字符串的文件
- 在没有参数列表的情况下使用模板名称"Event"无效,模板问题
- 公开最直接的基类模板名称
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 为什么用结构初始化数组需要指定结构名称
- 使用单词"not"作为C ++类的名称会导致VS2019错误
- 为什么C++对链表中的下一个节点使用指针,而像 C# 或 Java 这样的语言只使用类 Node 的名称?