用Visual Studio Code配置一套“舒适的”C/C++开发环境

人生苦短,我用 VSCode

不像 Visual Studio 或者 Clion,VScode 的定位并不是 IDE,他只是一个可以安装很多插件的文本编辑器

所以在开发 C/C++项目时,未经配置的 VSCode 可能就只能提供基本的语法高亮功能,这很大程度上可能是因为 VSCode 本身并没有一个很明确的“项目”的概念,尽管可以通过特定于 VSCode 的配置来添加编译指令,调试指令,添加搜索的头文件等,但终究是不够优雅及通用

幸运的是,在曾经的 Visual Studio 时代的 MSBuild 项目之后,CMake 项目大行其道且基本上成为了 C/C++项目如今事实上的标准,VSCode 的 CMake 插件支持在开启了自动 CMake Configure 之后,用 VSCode 打开一个包含 CMakeList.txt 的文件夹,就相当于打开了一个 CMake 项目,这点也与如今的各大 IDE 做到了行为统一,大多数时候,不在需要编写特定于 VSCode 的配置文件

所以现在,只需经过一些简单的配置,就可以在 VSCode 达到甚至超过大型 IDE 的 Coding 体验

安装 VSCode 本体

你可以在Visual Studio Code - Code Editing. Redefined下载他的安装包也可以在 winget 等包管理器中直接安装

在这里不再赘述

VSCode 编辑环境配置

插件安装

以 MSVC 搭配 cmake,vcpkg 作为构建环境为例,配置可参见上篇文章
以下是强烈建议安装的扩展(或者叫必备扩展)

  • C/C++
  • CMake Tools
    (以上二者也可以直接安装 C/C++ Extension Pack 合集)
  • clangd

再以下是一些推荐扩展

  • TONGYI Lingma(Copilot 平替,当然直接用 Copilot 也没问题)
  • CMake Language Support
  • Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code
  • Qt for Python(Qt 开发时提供.ui 等文件支持)

配置文件修改

上文提到了”clangd”扩展,可能初接触 VSCode 并用其进行开发的人并不会注意到这个扩展,但需要承认一点,现阶段 Microsoft 提供的 C/C++扩展并不完美,在很多情况下会有反应不及时,补全卡顿等情况,以及缺乏一些很有用的如参数提示,有效的自动修复建议及更加合理的代码格式化等功能,而 clangd 基本上解决了这些问题,另外,在搭配 MSVC 编译器时,双重代码检查可以帮助编写更加通用的代码

clangd 在索引项目时需要用到compile_commands.json文件,在 Linux 环境下,这应该不是什么问题,但在 Windows 下,CMake 会默认使用 MSBuild 作为后端,为了让 clangd 能够正确索引项目,建议在设置中将Cmake: Generator改为Ninja,-DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE这句参数 VSCode 的 CMake Tools 扩展理论上会自动帮你带上,所以不必操心这点

为了更方便的配置项目,可以开启Cmake: Configure On Open,如果需要快速创建 CMake 项目,也可以按下 Ctrl+Shift+P(或点击顶部搜索框并输入>) 并执行CMake: 快速入门

*注:在首次打开项目时,cmake 可能会来不及生成compile_commands.json文件,在完成 cmake congfigure 后,再次打开项目或 按下 Ctrl+Shift+P(或点击顶部搜索框并输入>) 并执行clangd: Restart language server

为了让 vcpkg 可以自动集成到项目中,可以在Cmake: Configure Args加入-DCMAKE_TOOLCHAIN_FILE=path/to/vcpkg/scripts/buildsystems/vcpkg.cmake,其中path/to/vcpkg/请替换为 vcpkg 的安装目录(适用于 vcpkg 经典模式)

另外,如果需要使用独立安装的 Qt 库开发,还可以考虑在Cmake: Configure Args加入-DCMAKE_PREFIX_PATH=path/to/Qt/x.x.x/msvc2019_64,并在Cmake: Environment加入键PATH${env:PATH};path\to\Qt\x.x.x\msvc2019_64\bin,同理,将 Qt 路径替换为自己的,另外如果在 Linux 环境,则将 PATH 值中的;改为:,并用/代替\,当然另外一个可选方案是用 vcpkg 安装 Qt

细节方面,个人建议在调试程序时,可以考虑修改Cmake: Debug Config,然后在 settings.json 中加入如下内容

"cmake.debugConfig": {

        "console": "integratedTerminal"//或其他值来覆盖默认的internalConsole
    },

因为 internalConsole 在某些时候可能会导致一些 stdout 不能及时输出及无法正常获取 stdin 输入的情况

以及为了代码整洁,可以考虑开启Editor: Format On SaveEditor: Format On Paste,并将 clangd 设为 C/C++的默认代码格式器

另外,TONGYI Lingma 需要登录阿里云账号,Copilot 需要登录 Github 账号,具体操作不在此赘述

至此,在进行一些个性化主题配置,修改快捷键(如将 F5 设为 CMake Debug),修改背景图片(如使用 Background 插件)之后,应当就可以获得一个不错的 C/C++开发环境了(如果要 Debug 还是找个 IDE 吧)

回见

*注:本文使用 Visual Studio Code 编写

感谢看到这里噢~ 希望这能给你带来帮助,如果觉得在任何地方有疑问,欢迎联系MWX(如需转载,请注明文章出处噢)!
或者如果大人愿意也可以...
上一篇
下一篇