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

oko*_*vko 5 c++ cmake clang libc++

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

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

n. *_* m. 6

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

 clang++ -xc++ -stdlib=libc++ - <<EOF
 int main(){}
 EOF
Run Code Online (Sandbox Code Playgroud)

如果失败,则没有libc ++.

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

 clang++ $(CXXFLAGS) $(LDFLAGS) -xc++ -stdlib=libc++ - <<EOF
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*low 6

答案比@nn略好:

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

如果打印出类似以下内容:#define _LIBCPP_VERSION 3700,则说明您有libc ++。