2

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

我试图做的事情:

  • 安装了 clang、g++ 和最新的 libstdc 库
  • 使用终端中的clang编译并运行程序clang++ -v <name_of_file>
  • 尝试在设置中手动包含 c++ 库目录但失败

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

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

我尝试了各种格式(在“linter”->“clang”、“clang”等下),但都不起作用。此外,我什至不确定这种方法是否有效。

谢谢~

(使用 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"
                ]
            }
    }
}
4

2 回答 2

1

恕我直言,最好不要指出编译器包含目录,因为 Xcode 和 clang 可能会将其隐藏在 /Application/Xcode/ 文件夹中的某个位置。

我发现以下有用

"SublimeLinter": {
    "linters": {
        "clang": {
            "extra_flags": " -x c++ "
        }
    }
},
于 2015-03-24T11:46:47.343 回答
1

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

llvm 文档中概述

该问题已得到解决

于 2015-10-03T23:51:25.680 回答