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

How to check if libc++ is installed?

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

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

您可能对 gcc 和 clang 都感到困惑。要将代码编译为 C++,您必须分别使用 g++ 而不是 gcc,而不是 clang++ 而不是 clang

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

检查库是否已安装的方法如下:

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

检查是否安装了 libc++ 的最直接方法是在普通程序上使用它:

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

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

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

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

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

比@n.n更好的答案:

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

如果打印出如下内容:#define _LIBCPP_VERSION 3700,那么您已经安装了 libc++。