SublimeLinter clang - 找不到基本的 headers

SublimeLinter clang - Can't find basic headers

我最近安装了 Sublime Text 3,我正在尝试让 SublimeLinter 为 C++ 工作。我已经使用 Package Control 安装了 "SublimeLinter-contrib-clang" linter,并且 linter 确实激活了。但是,我的问题是 linter 会针对每个基本的 header,即基本的 Hello World 程序中的 #include <iostream> 给出错误。

我尝试过的事情:

最后一个似乎是最好的选择,但我似乎完全不明白 Sublime 设置是如何工作的。这是我的用户设置文件:(配色方案和忽略的包行已经存在)

{
    "color_scheme": "Packages/User/SublimeLinter/Monokai (SL).tmTheme",
    "ignored_packages":
    [
        "Vintage"
    ],
    "SublimeLinter-contrib-clang": {
        "include_dirs": "/usr/include/c++"
    }
}

我尝试了各种格式(在 "linters"->"clang"、"clang" 等下),但其中 none 行得通。此外,我什至不确定这种方法是否有效。

谢谢~

(使用 Ubuntu 14.04)

编辑: 我当前的用户设置文件:

{
    "color_scheme": "Packages/User/SublimeLinter/Monokai (SL).tmTheme",
    "font_size": 11,
    "ignored_packages":
    [
        "Vintage"
    ],
    "linters": {
        "clang": {
                "extra_flags": [],
                "include_dirs": [
                    "/usr/include/c++/4.8.2"
                ]
            }
    }
}

恕我直言,最好不要指出编译器包含目录原因 Xcode 并且 clang 可能会将它隐藏在 /Application/Xcode/ 文件夹中的某个地方。

我发现以下内容很有用

"SublimeLinter": {
    "linters": {
        "clang": {
            "extra_flags": " -x c++ "
        }
    }
},

发生这种情况是因为插件使用带有 -cc1 标志的 clang,这可以描述为将其转换为 internal 模式,省略选项(即平台特定位置设置)。

llvm docs

中概述

问题自 been fixed 以来一直存在。