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

时间:2016-07-18 16:12:51

标签: c++ cmake clang libc++

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

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

4 个答案:

答案 0 :(得分:6)

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

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

如果失败,则表示您没有libc ++。

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

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

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

答案 1 :(得分:5)

比@n.n更好的回答:

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

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:-1)

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

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