libcxxabi在linux下有意义吗?有什么好处?

时间:2014-03-19 14:54:03

标签: linux clang llvm abi libc++

我试图确定在linux下的llvm项目中构建和使用libcxxabi是否有意义。

我的libcxxabi版本与

相关联
ldd libc++abi.so.1.0 
    linux-vdso.so.1 =>  (0x00007fff2e0db000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd658f0d000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fd658d05000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd65893c000)
    libc++.so.1 => /path/where/clang/is // edited
    /lib64/ld-linux-x86-64.so.2 (0x00007fd6593ab000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd658465000)

所以它使用gcc_s库,即GNU librt,唯一真正的区别在于它使用libc++而不是libstdc++,但这究竟有多好?

鉴于abi库的关键作用,我应该在这样的平台上寻找libcxxabi

我的问题不是关于如何构建它,或者这是否有效,但如果这是一个好主意 C ++ - 明智,我可以获得什么样的好处,或者如果你已经在使用它,你会得到什么样的好处。

1 个答案:

答案 0 :(得分:3)

您不应该直接使用libcxxabi。据我所知,它是一种平台抽象库,提供实现libcxx所需的低级功能。

如果您询问使用libcxx或libstdc ++,差异主要是许可证,较新的标准版本完整性(clang项目在实现最近的C ++版本时似乎稍微快一点)以及您有两个替代实现的事实。

其中一个高于另一个似乎没有紧迫的理由。我会坚持在你的系统上得到更好支持的那个。这两个项目都旨在兼容ABI,因此应该可以使用任何一个没有任何破损。