如何检查是否安装了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++。
我正在从源代码构建一些东西。我系统的 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++。