c++ - 在 CentOS 7 上使用带有 libc++ 的 Clang 时缺少符号(没有 C++ ABI 库?)
问题描述
以下软件包是从 CentOS 7.6 上的存储库安装的:
- clang-3.4.2-9.el7.x86_64
- libcxx-3.8.0-3.el7.x86_64
- libcxx-devel-3.8.0-3.el7.x86_64
尝试构建一个简单的 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++。
解决方案
尝试-lc++abi
手动传递。这个问题在现代安装中得到了解决,但 Linux 软件包不是现代的。考虑使用 apt.llvm.org
推荐阅读
- python - 如何将 for i in range 循环打印到 PySimpleGUI 窗口?
- r - 将多列数据框转换为 R 中的 3D 矩阵
- javascript - React redux 在调度删除操作时不更新 ui
- pulseaudio - 为什么pulseaudio中的null-sink和实际设备之间的延迟存在差异?
- spring-boot - 如何安装 curl 以对 spring boot jib docker 映像进行健康检查?
- java - 访问 Storage.DIRECTORY_DOWNLOADS(根目录/下载文件夹以查看文件)
- microsoft-graph-api - 用于日历事件的 Microsoft 图形订阅挂钩被多次疯狂触发
- css - 在侧边栏中使用 flexbox/flex 方向列时,无序列表项不会在中心对齐,还有没有更好的方法来实现这一点?
- character-encoding - R Studio 无法正确读取 txt 文件中的汉字
- c# - 在独占线程约束下锁定