LLVM中的libC++和libC++ abi库有什么区别?
问题描述:
我看到这两个项目是相关的,但它们之间有什么不同?官方网页并没有多说这件事。LLVM中的libC++和libC++ abi库有什么区别?
我知道ABI(应用程序二进制接口)用于在不同平台之间提供低级二进制接口。那么libC++ abi用于为不同的平台提供不同的实现,以及libC++的一般接口?
最好去给一些具体的例子,例如libC++ abi中包含了什么以及libC++中包含了哪些内容。
谢谢。
答
Application Binary Interface或简称ABI旨在提供构建C++标准库的某些低级函数。它是一个支持库,是与实际标准库分离的组件。与libcxxabi一起,您可能还会遇到Pathscale的libcxxrt或GCC的libsupcxx。
另一方面,libc++是C++标准库的一个实现,它可以使用3个提到的ABI中的任何一个来构建。
非常感谢!那么你的意思是libcxxabi,libcxxrt,libsupcxx,libC++ abi,它们是相似的,都提供了ABI实现?你可以给一些具体的例子,libC++ abi中有什么和libC++中有什么? – gkso
'libcxxabi'和'libC++ abi'是一回事。 ABI库包含对内存管理,异常处理等的支持......您可以看到[libcxxabi提供](https://libcxxabi.llvm.org/spec.html)。 'libC++'包含实际的C++标准库。 – Thebluefish