Windows升华和LSP Clangd插件:找不到C++;标题

Windows升华和LSP Clangd插件:找不到C++;标题,clang,sublimetext3,windows-subsystem-for-linux,sublime-text-plugin,language-server-protocol,Clang,Sublimetext3,Windows Subsystem For Linux,Sublime Text Plugin,Language Server Protocol,我最近决定尝试SublimiteText 3,我发现它非常棒,插件支持非常广泛!我最近发现了这个插件:我正在Clangd中使用它。但问题是,我所知道的错误是在我尝试的过程中编译的。我采取的步骤很简单: 安装升华: 安装用于Windows的CLang.exe预构建二进制文件: 重新启动计算机(以便可以对Windows环境路径进行新的修改) 从包控制安装LSP 在命令托盘中键入LSP:Enable Language Server Globally 在随后的窗口中键入clangd,然后点击enter启

我最近决定尝试SublimiteText 3,我发现它非常棒,插件支持非常广泛!我最近发现了这个插件:我正在Clangd中使用它。但问题是,我所知道的错误是在我尝试的过程中编译的。我采取的步骤很简单:

  • 安装升华:
  • 安装用于Windows的CLang.exe预构建二进制文件:
  • 重新启动计算机(以便可以对Windows环境路径进行新的修改)
  • 从包控制安装LSP
  • 在命令托盘中键入
    LSP:Enable Language Server Globally
  • 在随后的窗口中键入
    clangd
    ,然后点击
    enter
    启用
  • 重启并打开C++文件。
  • < > C++文件本身没有什么特别之处,我可以在这里发布它来确保零模糊:

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
        int w, s, c, k;
        cin >> w >> s >> c >> k;
        bool valid = false;
        if (k > s)
            valid = true;
        else if (k == s)
        {
            if (w + c < k)
                valid = true;
            else if (w + c == k)
                valid = true;
            else if (w == k && c == k)
                valid = true;
            else if (w + c <= 2 * k)
                valid = true;
        }
        else if (w + c < k)
            valid = true;
        else if (w + c == k && s <= 2 * k)
            valid = true;
        cout << (valid ? "YES" : "NO") << endl;
        return 0;
    }
    
    #包括
    使用名称空间std;
    int main(){
    int w、s、c、k;
    cin>>w>>s>>c>>k;
    bool valid=false;
    如果(k>s)
    有效=真;
    else如果(k==s)
    {
    if(w+c否则,(W+C:P>)我已经解决了我的初始问题。<强>清楚:我找出了为什么Clangd找不到C++头文件。我没有解决如何使用WSL提供的C/C++头文件,也没有解决如何使用UNIX套接字通过WSL与CLAND进行交互。<强> < /P>
    我的问题不仅仅是缺少
    stdc++.h
    。我通常缺少所有C/C++头文件。获取这些文件的方法多种多样,但我选择的方法是通过“Visual Studio构建工具”安装MSVC。我在此处下载了“Visual Studio安装程序”:

    下载后,我安装了程序,并遵循以下两个步骤:

  • 打开“Visual Studio安装程序”
  • 安装“通用Windows平台构建工具”
    • 其中一个选项被选中安装为“Windows 10 SDK(10.0.17763.0)”
  • 在那之后,LSP插件就对我起作用了。当时唯一的问题是“bits/stdc++.h”,这说明MSVC没有它,因为它是非标准的。我只是在谷歌上搜索了“GCC stdc++.h”找到了第一个,特别是这个: 然后将它放在一个名为“bits”的文件夹中,该文件夹与我的其他C/C++标题位于同一位置(对我来说,这里是:C:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include)

    最后一点提示:我真的安装了整个工具链,因为我想看看我是否可以拥有我认为“独立于Linux”的东西。我想要一个轻量级的VisualStudio替代品,我可以向那些不那么面向Linux的同行推荐(尽管我不得不承认,找到一个使用WSL的C/C++头的解决方案是我放弃了寻找“独立于Linux”的东西)。获取C/C++标头的方法有多种,其中最突出的是安装Visual Studio或MinGW。安装Visual Studio违背了提供替代方案的目的,而MinGW实际上需要从源代码构建Clang以包含C/C++标头位置。MSVC是这里的完美选择,因为安装它很简单。这个解决方案实际上只在我的步骤中添加了几个步骤来重现问题,它完成了包,并允许为C/C++提供一个相对容易设置的开发环境。这些步骤包括:

  • 安装升华:
  • 安装用于Windows的CLang.exe预构建二进制文件:
  • 安装“Visual Studio生成工具”:
  • 打开“Visual Studio生成工具”并安装“通用Windows平台生成工具”
  • 重新启动计算机(以便可以对Windows环境路径进行新的修改)
  • 从包控制安装LSP
  • 键入LSP:在命令托盘中全局启用语言服务器
  • 在随后的窗口中键入clangd,然后按enter键启用
  • 重启并打开C++文件。

  • <>我已经解决了我最初的问题。<强>我明白了为什么Clangd找不到C++头。我没有解决如何使用WSL提供的C/C++头,也没有解决如何使用UNIX套接字通过WSL与CLAND进行交互。<强> < /P> 我的问题不仅仅是缺少
    stdc++.h
    。我通常缺少所有C/C++头文件。获取这些文件的方法多种多样,但我选择的方法是通过“Visual Studio构建工具”安装MSVC。我在此处下载了“Visual Studio安装程序”:

    下载后,我安装了程序,并遵循以下两个步骤:

  • 打开“Visual Studio安装程序”
  • 安装“通用Windows平台构建工具”
    • 其中一个选项被选中安装为“Windows 10 SDK(10.0.17763.0)”
  • 在那之后,LSP插件就对我起作用了。当时唯一的问题是“bits/stdc++.h”,这说明MSVC没有它,因为它是非标准的。我只是在谷歌上搜索了“GCC stdc++.h”找到了第一个,特别是这个: 然后将它放在一个名为“bits”的文件夹中,该文件夹与我的其他C/C++标题位于同一位置(对我来说,这里是:C:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include)

    最后一点提示:我真的安装了整个工具链,因为我想看看我是否可以拥有我认为“独立于Linux”的东西。我想要一个轻量级的VisualStudio替代品,我可以向那些不那么面向Linux的同行推荐(尽管我不得不承认,找到一个使用WSL的C/C++头的解决方案是我放弃了寻找“独立于Linux”的东西。)获得C/C++头的方法有多种,最突出的是安装Visual Studio或MinGW。