Windows上最轻量的vscode-C++开发环境搭建

本文目录

  • 1. 前言
  • 2. 准备工作
  • 3. vscode的一些常用插件
    • 3.1 C++主要插件
    • 3.2 一些辅助插件
  • 4. 单文件工程示例
  • 5. 多文件工程示例
    • 5.1 工作空间结构
    • 5.2 CMakelists.txt
    • 5.3 代码文件
    • 5.4 运行结果
  • 6. 结语

1. 前言

笔者刚入行时直接使用Qt进行C++软件开发,习惯了Qt浅色风格之后,尤其是虚函数斜体显示的主题。再转到VS,无论是VS的深色还是浅色主题,都让笔者感觉到强烈的不习惯。

而且,VS的安装有时候着实让人诟病,安装vs2017之前的还好,可以下载离线包。但vs2017之后,需要先下载Visual Studio Installer再下载安装必要组件,而国内有时候甚至经常出现Visual Studio Installer下载失败的情况。vs的确功能强大,堆栈分析内存快照,甚至并行堆栈现在都是笔者常用的功能。然而,VS实在是太过臃肿太过庞大,下载耗时不说,安装内存直接起飞。

鉴于以上三点原因,笔者一直在苦苦寻找C++最轻量的集成开发环境。hw工作两个月,vscode的深度使用,让我看到了希望。本文将详细介绍如何使用vscode搭建 最轻量 的C++开发环境。

2. 准备工作

vscode功能太强大了,因为其强大的扩展性,因此功能上十分完备。它虽然是个编辑器,但得益于其丰富的插件以及活跃的插件社区,vscode除了编译器和调试器之外,其余什么都不缺。

如何下载安装vscode自不用多说,百度vscode进官网下载安装就行。但推荐在安装时,勾选将code添加进环境变量。另外还有一个问题,vscode官网下载有时候会很慢,读者可以自行百度vscode国内下载慢关键字进行解决。似乎是要修改下载链接的某部分前缀。

因此,为解决编译器和调试器,现行C++编译器,主流的就那么几种:

  1. msvc:微软的编译器,也是vs自带的编译器。
  2. gcc:linux上最常用的编译器。
  3. clang:编译器新秀,因为采用现代化设计,因此其某些方面的表现异常优秀。

msvc自然不用多说,如何从vs中剥离出msvc笔者还没有尝试过,但既然决定搭建最轻量的C++开发环境,那就不用msvc吧。因此目光放到gcc上,幸运的是,Windows上也有gcc编译器,那就是大名鼎鼎的MinGW

MinGW下载地址如下:MinGW-64下载地址。

如果直接下载原生的MinGW,需要从sourceForge上下载,但那个下载速度让人感动。因此下载MinGW,推荐使用MSYS2

MSYS2是一个Windows上集成clang、gcc的类linux环境,可以通过pacman命令下载MinGW以及对应的一些常用的第三方库,使用起来十分方便。而且MSYS2国内下载很快,也可以切换国内源进行库下载。因此笔者推荐使用MSYS2下载安装MinGW。后期如果要切换到clangMSYS2也能满足。

MSYS2下载安装好了之后,其目录结构大致如下:

Windows上最轻量的vscode-C++开发环境搭建_第1张图片
目录中,mingw64.exe是启动mingw终端的exe,进入MSYS2终端之后,可以通过输入以下命令进行MinGW-gcc的安装:

pacman -S mingw-w64-x86_64-toolchain

输入上述命令之后,可以看到如下输出:

$ pacman -S mingw-w64-x86_64-toolchain
:: There are 19 members in group mingw-w64-x86_64-toolchain:
:: Repository mingw64
   1) mingw-w64-x86_64-binutils  2) mingw-w64-x86_64-crt-git
   3) mingw-w64-x86_64-gcc  4) mingw-w64-x86_64-gcc-ada
   5) mingw-w64-x86_64-gcc-fortran  6) mingw-w64-x86_64-gcc-libgfortran
   7) mingw-w64-x86_64-gcc-libs  8) mingw-w64-x86_64-gcc-objc
   9) mingw-w64-x86_64-gdb  10) mingw-w64-x86_64-gdb-multiarch
   11) mingw-w64-x86_64-headers-git  12) mingw-w64-x86_64-libgccjit
   13) mingw-w64-x86_64-libmangle-git  14) mingw-w64-x86_64-libwinpthread-git
   15) mingw-w64-x86_64-make  16) mingw-w64-x86_64-pkgconf
   17) mingw-w64-x86_64-tools-git  18) mingw-w64-x86_64-winpthreads-git
   19) mingw-w64-x86_64-winstorecompat-git

Enter a selection (default=all):

输入Y之后就会进行相关工具的安装,输出大致如下:

:: Proceed with installation? [Y/n] Y
(19/19) checking keys in keyring                   [#####################] 100%
(19/19) checking package integrity                 [#####################] 100%
(19/19) loading package files                      [#####################] 100%
(19/19) checking for file conflicts                [#####################] 100%
(19/19) checking available disk space               [#########################] 100%
:: Processing package changes...
( 1/19) reinstalling mingw-w64-x86_64-binutils      [#########################] 100%
( 2/19) reinstalling mingw-w64-x86_64-headers-git   [#########################] 100%
( 3/19) reinstalling mingw-w64-x86_64-crt-git       [#########################] 100%
( 4/19) reinstalling mingw-w64-x86_64-libwinpth...  [#########################] 100%
( 5/19) reinstalling mingw-w64-x86_64-gcc-libs      [#########################] 100%
( 6/19) reinstalling mingw-w64-x86_64-winpthrea...  [#########################] 100%
( 7/19) reinstalling mingw-w64-x86_64-gcc           [#########################] 100%
( 8/19) reinstalling mingw-w64-x86_64-gcc-ada       [#########################] 100%
( 9/19) reinstalling mingw-w64-x86_64-gcc-libgf...  [#########################] 100%
(10/19) reinstalling mingw-w64-x86_64-gcc-fortran   [#########################] 100%
(11/19) reinstalling mingw-w64-x86_64-gcc-objc      [#########################] 100%
(12/19) reinstalling mingw-w64-x86_64-gdb           [#########################] 100%
(13/19) reinstalling mingw-w64-x86_64-gdb-multiarch [#########################] 100%
(14/19) reinstalling mingw-w64-x86_64-libgccjit     [#########################] 100%
(15/19) reinstalling mingw-w64-x86_64-libmangle-git [#########################] 100%
(16/19) reinstalling mingw-w64-x86_64-make          [#########################] 100%
(17/19) reinstalling mingw-w64-x86_64-pkgconf       [#########################] 100%
(18/19) reinstalling mingw-w64-x86_64-tools-git     [#########################] 100%
(19/19) reinstalling mingw-w64-x86_64-winstorec...  [#########################] 100%

至此,代码编辑器、编译器均已安装好,别忘记将上文中/MSYS2-path/mingw64/bin目录添加进环境变量。如果你还需要调试器等其他的工具,请接着往下看,否则可以直接跳到第三节。

  1. MSYS2安装gdb调试器:
    pacman -S mingw-w64-x86_64-gdb
  2. MSYS2安装make、cmake
    pacman -S mingw-w64-x86_64-make
    pacman -S mingw-w64-x86_64-cmake
    安装make是必须的,但是make下载后并不是make.exe,而是mingw-make.exe
    安装cmake只是为了不用再去cmake官网下载,而cmake官网下载cmake安装文件很慢。

3. vscode的一些常用插件

3.1 C++主要插件

vscode下载安装结束之后,C++开发常用的插件如下:

  1. C/C++:
    在这里插入图片描述
  2. cmake插件:
    Windows上最轻量的vscode-C++开发环境搭建_第2张图片
    注:CMakeTools插件,建议进行如下设置:
    Windows上最轻量的vscode-C++开发环境搭建_第3张图片
    该设置的含义为,将CMake的构建目录设置为工作空间文件夹的上一级文件夹下,以工作空间名+_Build命名该工作空间的构建文件夹。

如果只是开发C++,核心插件就是这三个。其中C/C++插件是vscode对C/C++直接支持的插件,cmakecmake tools插件是对cmake直接支持的插件。

如果不需要使用cmake进行工程构建,也可以不用下载cmake相关插件,但这样的话,需要手写workspaceFolder/.vscode/task.jsonworkspaceFolder/.vscode/launch.json这两个文件进行工程构建配置。由于这两个文件写起来比较麻烦,相关教程也较少,因此笔者推荐使用cmake进行工程构建。同时,对于多文件工程,cmake提供了更好了支持。

不过,比较麻烦的是,如果使用cmake进行工程构建,需要自己写CMakelists.txt,需要了解cmake语法。不过,对于大部分C++程序而言,第三方库的使用必不可少,而现在主流的第三方库构建语言正是cmake。因此cmake是任何C++开发者绕不过去的。

鉴于此,笔者强烈推荐读者朋友们学一学cmake。

3.2 一些辅助插件

C++开发过程中,遇到一些特殊需求,比如自动生成类成员函数的定义,可以使用以下两个插件:

自动生成类成员函数的定义插件:

  1. C/C++ Definition Autocompletion
    Windows上最轻量的vscode-C++开发环境搭建_第4张图片
    该插件主要功能是根据头文件中的函数声明,通过按下.自动生成函数定义。
    如下图所示:
    Windows上最轻量的vscode-C++开发环境搭建_第5张图片

  2. 还有一个自动生成所有成员函数的插件,但是忘了叫什么,下载次数比上面这个要多,但个人感觉不好用。后面想起来了再更新…

关于代码自动补全的插件,最近笔者发现了一款神奇的AI辅助插件,这里也推荐一下,看介绍是利用AI进行上下文识别,自动创建代码段候选。vscode插件商城中AI辅助写代码的插件有很多,但笔者个人觉得,可能还是以下插件要稍微好用一些:

AI 辅助插件 — Tabnine
在这里插入图片描述
笔者多嘴一句:AI辅助插件虽然神奇且强大,但由于其联网可能会更准确,在安全性方面,敬请读者朋友们谨慎使用。这也可能是笔者对AI外行的片面之词,因此请读者朋友们自行甄别。

另外,如果读者对当前的vscode的主题(图标主题、颜色主题等)不满足,vscode插件商城里有极其丰富的主题插件,总有一款会适合你。

4. 单文件工程示例

以上C++开发环境已经搭建完毕,下文将介绍如何进行真实工程开发。

假设工作空间如下图所示:

Windows上最轻量的vscode-C++开发环境搭建_第6张图片
通过编写CMakelists.txt,可以进行单文件构建。

其中,CMakelists.txt的内容如下:

cmake_minimum_required(VERSION 3.20)

project(SingleFileProjectExample)

add_executable(${PROJECT_NAME} main.cpp)

main.cpp的内容如下:

#include 

int main()
{
    std::cout << "Hello World." << std::endl;

    return 0;
}

这里需要注意一点的是,CMakeTools插件在第一次打开工作空间添加CMakelists.txt文件时,不会自动触发CMakeConfiguration,当写完CMakelists.txt文件之后,用vscode重新打开工作空间,才会触发CMakeConfiguration。细节对比如下:

  1. 第一次打开空的工作空间,编辑器状态栏CMakeTools相关信息并未显示:
    在这里插入图片描述
  2. 添加CMakelists.txt文件后,重新打开工作空间,CMakeTools插件触发CMakeConfiguration,信息如下:
    Windows上最轻量的vscode-C++开发环境搭建_第7张图片

选择gcc编译器之后,点击状态栏的调试按钮或者运行按钮,即可进行程序的调试或运行。如下图所示:
Windows上最轻量的vscode-C++开发环境搭建_第8张图片
可以看到工程已成功运行。

5. 多文件工程示例

多文件工程示例如下,只需要修改CMakelists.txt文件就行:

5.1 工作空间结构

多文件工程示例结构如下:

Windows上最轻量的vscode-C++开发环境搭建_第9张图片
这是按照一般第三方库的写法进行的,头文件放在include目录下,源文件放在source文件夹下,最外层放CMakelists.txt文件。

5.2 CMakelists.txt

  1. 工程构建的CMakelists.txt文件内容如下:
    Windows上最轻量的vscode-C++开发环境搭建_第10张图片

  2. source文件夹下CMakelists.txt文件内容如下:
    在这里插入图片描述

5.3 代码文件

  1. MyMath.h
    Windows上最轻量的vscode-C++开发环境搭建_第11张图片
  2. MyMath.cpp
    Windows上最轻量的vscode-C++开发环境搭建_第12张图片
  3. main.cpp
    Windows上最轻量的vscode-C++开发环境搭建_第13张图片

5.4 运行结果

运行结果如下:

在这里插入图片描述

6. 结语

vscode+MinGW搭建C++开发环境不难,而且整体加起来大小也只有1G左右,相比于vs动不动5~6G的庞大来说,这一套着实是算轻量了。

这一套所有的资源已经上传,需要的朋友可以前往下载:下载地址。

另外,打字不易,能不能点个赞再走???

你可能感兴趣的:(C++,vscode,c++,windows)