首页 > 解决方案 > 在 CentOS 7 上使用带有 libc++ 的 Clang 时缺少符号(没有 C++ ABI 库?)

问题描述

以下软件包是从 CentOS 7.6 上的存储库安装的:

尝试构建一个简单的 C++ 程序:

clang++ -std=c++11 -stdlib=libc++ junk.cpp

这会导致一堆链接器错误,例如:

/bin/../lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc++.so: undefined reference to `__cxa_throw'

AFAIK,这似乎是缺少 C++ ABI 库的问题,但我不知道如何安装一个可以提供所需符号的库。我可能可以从源代码构建一个,但想坚持使用可信赖的存储库中可用的内容。

有想法该怎么解决这个吗?

-stdlib=libc++如果省略,我可以很好地构建程序,在这种情况下使用 libstdc++。

标签: c++centos7clang++libc++

解决方案


尝试-lc++abi手动传递。这个问题在现代安装中得到了解决,但 Linux 软件包不是现代的。考虑使用 apt.llvm.org


推荐阅读