【问题标题】:Standard headers not found when switching to clang 3.4 and libc++切换到 clang 3.4 和 libc++ 时找不到标准头文件
【发布时间】:2016-12-01 21:40:02
【问题描述】:
安装 clang 3.4 并切换到 libc++ 后,我在 CircleCI 上收到以下错误。 . .
gtest/googletest/include/gtest/gtest.h:54:10: fatal error:
'limits' file not found
#include <limits>
有问题的头文件位于 /usr/lib/llvm-3.4/lib/clang/3.4/include/,但我无法阻止错误,即使使用 CMake INCLUDE_DIRECTORIES(SYSTEM path_above) 或设置 isystem 编译器标志。
知道有什么问题吗?
【问题讨论】:
标签:
c++
build
cmake
clang
standard-library
【解决方案1】:
我记得曾经遇到过这个问题。这发生在我身上,因为我是从源代码构建clang并且有多个二进制实例。如果有记忆,我通过在~/.bashrc 文件中设置C_INCLUDE_PATH 和CPLUS_INCLUDE_PATH 标志来解决它。
您可以通过将以下行添加到您的 ~/.bashrc 文件中来做到这一点,如下所示:
export C_INCLUDE_PATH=/usr/lib/llvm-3.4/lib/clang/3.4/include/
export CPLUS_INCLUDE_PATH=/usr/lib/llvm-3.4/lib/clang/3.4/include/
完成此操作后,您可以打开一个新终端或运行source ~/.bashrc(以便读取更新的~/.bashrc 文件)