【问题标题】: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_PATHCPLUS_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 文件)

    【讨论】:

      猜你喜欢
      • 2021-09-18
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 2020-02-16
      • 1970-01-01
      相关资源
      最近更新 更多