如何检查是否安装了libc++

How to check if libc++ is installed?

本文关键字:是否 安装 libc++ 检查 何检查      更新时间:2023-10-16

我正在从源代码构建一些东西。我的系统的gcc和stdlibc++太旧了,但我可以使用clang构建。默认情况下,clang使用stdlibc++,但可以选择安装libc++以供clang使用。

检查libc++是否与clang一起安装的最佳方法是什么?

比@n.n:稍好的答案

printf "#include <ciso646>nint main () {}" | clang -E -stdlib=libc++ -x c++ -dM - | grep _LIBCPP_VERSION

如果它打印出类似于:#define _LIBCPP_VERSION 3700的内容,那么您就得到了libc++。

检查是否安装了libc++最简单的方法是在一个琐碎的程序上使用它:

 clang++ -xc++ -stdlib=libc++ - <<EOF
 int main(){}
 EOF

如果失败,则说明您没有libc++。

在实际应用程序中,添加用户提供的编译器和链接器选项:

 clang++ $(CXXFLAGS) $(LDFLAGS) -xc++ -stdlib=libc++ - <<EOF

这样用户就有机会指定libc++安装在非标准位置。

以下是如何检查是否安装了库:

在终端中键入ldconfig -p | grep libc++。使用什么系统并不重要。如果没有安装libc++,终端将不会说任何话。如果已安装,它将显示可用的版本。

您可能会混淆gcc和clang所做的事情。要将代码编译为C++,您必须使用g++而不是gcc,分别使用clang++而不是clang

我怀疑libc++库本身是否缺失,因为几乎可以肯定某些程序依赖于它们。