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

标签 linux clang llvm abi libc++

我正在尝试确定是否构建和使用 libcxxabi来自linux下的llvm项目是有道理的。

我的 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++ 方面,我可以获得什么样的好处,或者什么样的好处如果您已经在使用它,您将获得的好处。

最佳答案

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

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

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

关于linux - libcxxabi 在 linux 下有意义吗?有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22509711/

相关文章:

python-3.x - 通过 pip 安装 librosa 失败

java - Matlab安装(LD_LIBRARY_PATH)把其他库文件弄乱了

linux - 使用模块读取内核内存

java - clang/libclang 有 Java 绑定(bind)吗?

c - 如何验证 void 指针 (void *) 是否是两种数据类型之一?

ios - 是否有人能够在 iOS 上使用 Address-Sanitizer(称为 asan 或 -fsanitize=address)?

python - 在 fedora 19 上从源代码构建 matplotlib,没有发现 freetype 头文件

php - 如何在 shell_exec 函数中包含 shell 命令?

ios - 更新 FBAudienceNetwork 时 Jenkins 构建上的位码版本无效

compiler-construction - 程序依赖图(PDG)