Windows+MinGW-w64+lsp-clangd+VSCode/sublime 配置简单c/cpp 单文件学习环境简要记录
有些时候我只想快速打开或者编写运行一个简单的c/cpp文件来快速验证想法, 比如说在做LeetCode上面的算法题时, 往往只需一个简单的单文件就可以写完所有逻辑.
我希望可以在编辑器里写代码时提供语法高亮, 智能提示, 错误检测和修改建议等功能, 同时还可以很方便地编译运行查看结果. 当前几乎所有的IDE都提供这些功能, 但是无论有多少个cpp文件, 里面的代码有多简单, 他们都要求新建一个工程项目来放置cpp文件, 对于我前面提到的场景有点"杀鸡焉用牛刀了".
同样在Sublime Text上也会有类似的提示 上述问题通过Visual Studio Installer 安装MSVC就可以解决. 但是如果嫌msvc太大而只想用mingw呢? VSCode的clangd插件的GitHub仓库里正好有人提到了相关的issue: https://github.com/clangd/vscode-clangd/issues/478 . 根据issue里提到的方案, 只要加上--target x86_64-w64-windows-gnu
这个flag就可以了 下面分别记录了VSCode和Sublime Text如何添加这个flag来解决在clangd在mingw下找不到头文件的问题以及分别通过其他插件快速编译运行cpp单文件1. vscode + clangd + Code Runner
- 在设置里搜索
@ext:llvm-vs-code-extensions.vscode-clangd
- 在Fallback Flags里添加两个item, 一个是
--target
, 一个是x86_64-w64-windows-gnu
, 如下图
2. sublime text+ LSP-clangd + FastOlympicCoding
- 以此通过上方菜单栏的Preferences->Package Settings->LSP->Servers->LSP-cland打开cland的配置文件
- 将initializationOptions这一个字段的内容复制到自定义配置里并且修改
fallbackFlags
这一个字段:"fallbackFlags": ["-target", "x86_64-w64-windows-gnu"],
如图所示:
同时记得要在FastOlympicCoding 配置文件里设置lint_enabled
和cpp_complete_enabled
为false
, 不然可能会与clangd插件冲突
3.不足
最大的不足就是没有debug功能, 要看某些变量在运行过程的变化只能通过类似printf来输出. 要是遇到了需要debug的情况, 还是推荐使用IDE来新建项目.另外VSCode的官方cpp插件是带有简单的调试功能的, 但是性能会比clangd差很多, 各有取舍吧.