2017-07-25 104 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