2017-07-25 74 views
4

我看到这两个项目是相关的,但它们之间有什么不同?官方网页并没有多说这件事。LLVM中的libC++和libC++ abi库有什么区别?

我知道ABI(应用程序二进制接口)用于在不同平台之间提供低级二进制接口。那么libC++ abi用于为不同的平台提供不同的实现,以及libC++的一般接口?

最好去给一些具体的例子,例如libC++ abi中包含了什么以及libC++中包含了哪些内容。

谢谢。

回答

3

Application Binary Interface或简称ABI旨在提供构建C++标准库的某些低级函数。它是一个支持库,是与实际标准库分离的组件。与libcxxabi一起,您可能还会遇到Pathscale的libcxxrt或GCC的libsupcxx

另一方面,libc++是C++标准库的一个实现,它可以使用3个提到的ABI中的任何一个来构建。

+1

非常感谢!那么你的意思是libcxxabi,libcxxrt,libsupcxx,libC++ abi,​​它们是相似的,都提供了ABI实现?你可以给一些具体的例子,libC++ abi中有什么和libC++中有什么? – gkso

+1

'libcxxabi'和'libC++ abi'是一回事。 ABI库包含对内存管理,异常处理等的支持......您可以看到[libcxxabi提供](https://libcxxabi.llvm.org/spec.html)。 'libC++'包含实际的C++标准库。 – Thebluefish