我最近决定尝试使用SublimeText 3,我发现它非常整洁,插件支持很广泛!我最近发现了这个插件:https://github.com/tomv564/LSP,我和Clangd一起使用它。但问题是,我所知道的错误是我已经尝试过编译的。我采取的步骤很简单:
LSP: Enable Language Server Globally
进入后续窗口并点击clangd
启用。C ++文件本身并不特别,我可以在这里发布以确保零模糊:
enter
当我使用#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;
}
通过WSL实际运行它时,此文件构建,但在Sublime.exe中,我得到的两个错误是:
我认为三个嵌套的子弹将通过'std'错误的解决方案解决,所以我真的不认为它们是错误的?
'bits / stdc ++。h'是我在参加编程比赛时使用的一个包含,所以我知道它存在,尽管在工作场所很糟糕,我知道clang++ otherside.cpp
不是“好习惯”,但至少我知道它是不是一个破坏编译的错误。这感觉就像是一个Clangd问题,但是我知道我过去使用过LSP的IDE,比如Visual Studio和CLion都没有报告这两个错误。有没有人以前解决过这个问题?
更新:我实际上花了时间通过运行using namespace std
与Clang.exe一起构建小cpp文件。我得到了预期的错误指定:“致命错误:'bits / stdc ++。h'文件未找到”但是,在WSL上编译通过clang++ otherside.cpp
编译就好了。所以看起来Windows和Linux之间存在差异。
我发现我需要在Windows上使用C / C ++标头。根据:clang++ otherside.cpp
,推荐的是MSys实用程序或GNUWin32。我希望通过WSL可以使用C / C ++头文件,这有可能吗?
2月22日更新:我试图安装MinGW C和C ++编译器来获取Clang的标题,但看起来如果我想让Clang找到那些标题,我将不得不从源代码构建Clang并修改一些名为https://clang.llvm.org/get_started.html的东西。同样,我希望有更多的解决方案,我可以使用WSL的C / C ++标头与Clang.exe。
另外,作为我朋友的概念证明,我还在WSL上安装了Sublime,并安装了LSP-Clangd插件,以显示我在Windows上出现的Clang错误都没有出现在WSL Sublime上。虽然肯定错误没有出现在WSL Sublime上,但它提出了一个有趣的观点。也许有一种方法可以在WSL中启动Clangd并将Sublime.exe挂钩到那个?我知道在过去的几年里,WSL已经实现了跨越式发展,其中一件事就是AF_UNIX套接字。我不是最熟悉unix套接字,是否可以使用它来启动或与Clangd交互?
我已经解决了我的初步问题。要清楚:我弄清楚为什么Clangd找不到c ++标题。我没有解决如何使用WSL提供的C / C ++头文件,也没有解决如何使用unix套接字通过WSL与Clangd交互的问题。
我的问题比仅仅缺少initHeaderSearch.cpp
更深刻。我一般都缺少所有的C / C ++头文件。有各种方法来获取这些,但我选择的方法是通过“Visual Studio Build Tools”安装MSVC。我在这里下载了“Visual Studio Installer”:stdc++.h
下载后,我安装了程序并执行了以下两个步骤:
之后,LSP插件对我有用。唯一的问题是“bits / stdc ++。h”,因为它是非标准的,因此MSVC没有它。我只是用Googled“GCC stdc ++。h”来获取那个,然后拉出我发现的第一个,特别是这个:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15并将它放在一个名为“bits”的文件夹中,与我的其他C / C ++头文件位于同一个地方(对于我来说:C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.16.27023 \ include)。
关闭的一点点PS:我真的安装了整个工具链,因为我想知道我是否能够拥有一些我认为“Linux独立”的东西。我想要一个轻量级替代Visual Studio,我可以推荐给那些不像Linux那样的同行(虽然我不得不承认找到一个使用WSL的C / C ++标题的解决方案是我放弃了找到一些东西“Linux独立“)。有多种方法可以获得C / C ++标头,最突出的是安装Visual Studio或MinGW。安装Visual Studio会失去替代的目的,而MinGW实际上需要从源代码构建Clang以包含C / C ++头部位置。 MSVC是这里的完美选择,因为安装它很简单。这个解决方案实际上只增加了我在步骤中重现问题的步骤,它完成了包,并为C / C ++提供了一个相对容易设置的开发环境。这些步骤是: