Visual Studio Code 安装配置

We-Fly教程大约 21 分钟

前置知识

阅读本篇文章需要的前置知识

简介

Visual Studio Code 是一款文本编辑器软件。他有非常丰富的插件,大部分功能都由插件提供。但注意,VScodeVisual Studio之间的关系就像Java scriptJava的关系一样。是完全不同的两个东西。由微软用Electron开发,得益于Electron框架,VScode具有很强大的跨平台特性。

你可以用VS code进行C/C++开发。在该项目早期,我们是采用VScodeCMake进行C++语言下的OpenCV开发。

后来转到Python语言开发OpenCV后我们继续采用VS code进行相关开发,当然也有成员使用Pycharm开发。

得益于VS code强大的插件生态,甚至可以使用Platform IO插件进行单片机开发和调试。

本文章主要是带你安装和配置VS code进行C/C++开发。其他功能可以自行探索。

C++ 开发环境安装过程

需要下载的东西

msys2 Tuna镜像下载提示

请访问该镜像目录,翻到最下面,找到名为 msys2-x86_64-<日期>.exe 的文件(如 msys2-x86_64-20221028.exe),下载安装即可。

Git 安装步骤

点击Next

1处选择安装目录,路径不可以含有中文,然后点击Next

根据自己的需要,可以取消勾选Git Gui Here右键菜单选项,然后点击Next

然后这边是选择开始菜单目录,直接点击Next

这边是设置Git默认配置文件编辑器,可以自由更改,后期可以通过命令修改

后面的页面全部点击Next就可以了,一般不需要改,如果有需要可以自己查阅

安装完成,取消勾选View Release Notes

然后根据网上的教程配置你的Git账号和邮箱,也可以自己研究如何SSH登录等等

msys2 安装步骤

点击下一步

选择安装位置

注意

如果这边改了路径,后面所有C:\msys64都需要修改成你的安装位置
由于后期会陆续安装很多软件包,文件夹会越来越大,如果C盘空间不足的请自行更改安装位置,但路径中不要有中文字符

这边是修改开始菜单的名称,保留默认,点击下一步就行

安装过程可能会卡住,但一般在5分钟左右

安装完成页面如图,点击下一步

取消勾选立即运行 MSYS2,点击完成,退出安装程序

参考这个文章修改环境变量,添加一条C:\msys64\mingw64\bin如果你修改过安装位置需要修改成对应的位置

开始菜单中找到MSYS2文件夹,然后点击MSYS2 MINGW64

注意

这个黑框框是不能直接粘贴的,需要右键,然后点击Paste,后面代码都不能直接用ctrl+v快捷键粘贴

然后是换源,请参考Tuna - MSYS2 镜像使用帮助open in new window

直接在 MSYS2 MINGW64 黑窗口内执行一行命令

sed -i "s#mirror.msys2.org/#mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*

然后在黑框框里输入pacman -Syu更新一下系统

中途会卡住,问你 :: Proceed with installation? [Y/n] 是提示你是否继续,直接按回车就行

黑框框应该会有类似的输出
Dustella@DESKTOP-VMFH9JG MINGW64 ~ 
# pacman -Syu
:: Synchronizing package databases...
 mingw32                        1732.9 KiB   622 KiB/s 00:03 [###############################] 100%
 mingw64                        1747.5 KiB   545 KiB/s 00:03 [###############################] 100%
 ucrt64                         1796.2 KiB   625 KiB/s 00:03 [###############################] 100%
 clang32                        1676.0 KiB   431 KiB/s 00:04 [###############################] 100%
 clang64                        1736.6 KiB   664 KiB/s 00:03 [###############################] 100%
 msys                            409.0 KiB   251 KiB/s 00:02 [###############################] 100%

:: Starting core system upgrade...
warning: terminate other MSYS2 programs before proceeding
resolving dependencies...
looking for conflicting packages...

Packages (2) filesystem-2022.01-6  pacman-6.0.1-24

Total Download Size:    5.62 MiB
Total Installed Size:  33.00 MiB
Net Upgrade Size:       0.16 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages...
 filesystem-2022.01-6-x86_64     107.7 KiB   139 KiB/s 00:01 [###############################] 100%
 pacman-6.0.1-24-x86_64            5.5 MiB  3.26 MiB/s 00:02 [###############################] 100%
 Total (2/2)                       5.6 MiB  3.24 MiB/s 00:02 [###############################] 100%
(2/2) checking keys in keyring                               [###############################] 100%
(2/2) checking package integrity                             [###############################] 100%
(2/2) loading package files                                  [###############################] 100%
(2/2) checking for file conflicts                            [###############################] 100%
(2/2) checking available disk space                          [###############################] 100%
:: Processing package changes...
(1/2) upgrading filesystem                                   [###############################] 100%
(2/2) upgrading pacman                                       [###############################] 100%
:: To complete this update all MSYS2 processes including this terminal will be closed. Confirm to proceed [Y/n]

最后会有提示你会关闭窗口:: To complete this update all MSYS2 processes including this terminal will be closed. Confirm to proceed [Y/n]

直接回车确认就好

然后再次打开MSYS2 MINGW64窗口

输入pacman -Syyu

黑框框应该会有类似的输出
Dustella@DESKTOP-VMFH9JG MINGW64 ~
# pacman -Syyu
:: Synchronizing package databases...
 mingw32                        1732.9 KiB  1017 KiB/s 00:02 [###############################] 100%
 mingw64                        1747.5 KiB   746 KiB/s 00:02 [###############################] 100%
 ucrt64                         1796.2 KiB   361 KiB/s 00:05 [###############################] 100%
 clang32                        1676.0 KiB   471 KiB/s 00:04 [###############################] 100%
 clang64                        1736.6 KiB   663 KiB/s 00:03 [###############################] 100%
 msys                            409.0 KiB   611 KiB/s 00:01 [###############################] 100%
:: Starting core system upgrade...
 there is nothing to do
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (5) libopenssl-1.1.1.s-1  libreadline-8.2.001-1  openssl-1.1.1.s-1  tzcode-2022f-1
             zlib-1.2.13-1

Total Download Size:   2.37 MiB
Total Installed Size:  5.86 MiB
Net Upgrade Size:      0.02 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages...
 libopenssl-1.1.1.s-1-x86_64    1200.5 KiB  1459 KiB/s 00:01 [###############################] 100%
 zlib-1.2.13-1-x86_64             49.4 KiB  50.6 KiB/s 00:01 [###############################] 100%
 openssl-1.1.1.s-1-x86_64        595.4 KiB   442 KiB/s 00:01 [###############################] 100%
 libreadline-8.2.001-1-x86_64    291.8 KiB   196 KiB/s 00:01 [###############################] 100%
 tzcode-2022f-1-x86_64           285.1 KiB   168 KiB/s 00:02 [###############################] 100%
 Total (5/5)                       2.4 MiB   934 KiB/s 00:03 [###############################] 100%
(5/5) checking keys in keyring                               [###############################] 100%
(5/5) checking package integrity                             [###############################] 100%
(5/5) loading package files                                  [###############################] 100%
(5/5) checking for file conflicts                            [###############################] 100%
(5/5) checking available disk space                          [###############################] 100%
:: Processing package changes...
(1/5) upgrading zlib                                         [###############################] 100%
(2/5) upgrading libopenssl                                   [###############################] 100%
(3/5) upgrading libreadline                                  [###############################] 100%
(4/5) upgrading openssl                                      [###############################] 100%
(5/5) upgrading tzcode                                       [###############################] 100%
:: Running post-transaction hooks...
(1/1) Updating the info directory file...

这样就可以了

如果期间有错误什么的,确认一下你之前换源的时候,有没有添加到第一行

然后安装MINGW工具链

输入

pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw64/mingw-w64-x86_64-cmake mingw64/mingw-w64-x86_64-ninja

会安装整个工具链,也可以根据自己的需要自行选择

根据网络和电脑配置,这个过程会持续5~10分钟

黑框框应该会有类似的输出
Dustella@DESKTOP-VMFH9JG MINGW64 ~
# pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw64/mingw-w64-x86_64-cmake mingw64/mingw-w64-x86_64-ninja
:: 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):
resolving dependencies...
looking for conflicting packages...

Packages (79) binutils-2.39-2  bison-3.8.2-3  diffstat-1.65-1  diffutils-3.8-3  dos2unix-7.4.3-1
              flex-2.6.4-2  gperf-3.1-4  groff-1.22.4-3  m4-1.4.19-2  make-4.3-3
              mingw-w64-x86_64-brotli-1.0.9-5  mingw-w64-x86_64-bzip2-1.0.8-2
              mingw-w64-x86_64-c-ares-1.18.1-1  mingw-w64-x86_64-ca-certificates-20211016-3
              mingw-w64-x86_64-curl-7.86.0-5  mingw-w64-x86_64-expat-2.5.0-1
              mingw-w64-x86_64-gettext-0.21-3  mingw-w64-x86_64-gmp-6.2.1-3
              mingw-w64-x86_64-isl-0.25-1  mingw-w64-x86_64-jsoncpp-1.9.5-1
              mingw-w64-x86_64-libarchive-3.6.1-2  mingw-w64-x86_64-libb2-0.98.1-2
              mingw-w64-x86_64-libffi-3.4.4-1  mingw-w64-x86_64-libiconv-1.17-1
              mingw-w64-x86_64-libidn2-2.3.3-1  mingw-w64-x86_64-libpsl-0.21.1-4
              mingw-w64-x86_64-libssh2-1.10.0-1  mingw-w64-x86_64-libsystre-1.0.1-4
              mingw-w64-x86_64-libtasn1-4.19.0-1  mingw-w64-x86_64-libtre-git-r128.6fb7206-2
              mingw-w64-x86_64-libunistring-1.0-1  mingw-w64-x86_64-libuv-1.44.2-1
              mingw-w64-x86_64-lz4-1.9.4-1  mingw-w64-x86_64-mpc-1.2.1-1
              mingw-w64-x86_64-mpdecimal-2.5.1-1  mingw-w64-x86_64-mpfr-4.1.0.p13-1
              mingw-w64-x86_64-ncurses-6.3-5  mingw-w64-x86_64-nghttp2-1.50.0-3
              mingw-w64-x86_64-openssl-1.1.1.s-1  mingw-w64-x86_64-p11-kit-0.24.1-3
              mingw-w64-x86_64-python-3.10.8-2  mingw-w64-x86_64-readline-8.1.002-2
              mingw-w64-x86_64-rhash-1.4.3-1  mingw-w64-x86_64-sqlite3-3.39.2-1
              mingw-w64-x86_64-tcl-8.6.12-1  mingw-w64-x86_64-termcap-1.3.1-6
              mingw-w64-x86_64-tk-8.6.12-1  mingw-w64-x86_64-tzdata-2022e-1
              mingw-w64-x86_64-windows-default-manifest-6.4-4  mingw-w64-x86_64-xxhash-0.8.1-2
              mingw-w64-x86_64-xz-5.2.7-1  mingw-w64-x86_64-zlib-1.2.13-1
              mingw-w64-x86_64-zstd-1.5.2-2  patch-2.7.6-1  pkgconf-1.8.0-1  texinfo-6.8-6
              texinfo-tex-6.8-6  base-devel-2022.01-2  mingw-w64-x86_64-binutils-2.39-2
              mingw-w64-x86_64-cmake-3.24.3-1  mingw-w64-x86_64-crt-git-10.0.0.r130.g13f9449c1-1
              mingw-w64-x86_64-gcc-12.2.0-6  mingw-w64-x86_64-gcc-ada-12.2.0-6
              mingw-w64-x86_64-gcc-fortran-12.2.0-6  mingw-w64-x86_64-gcc-libgfortran-12.2.0-6
              mingw-w64-x86_64-gcc-libs-12.2.0-6  mingw-w64-x86_64-gcc-objc-12.2.0-6
              mingw-w64-x86_64-gdb-12.1-4  mingw-w64-x86_64-gdb-multiarch-12.1-4
              mingw-w64-x86_64-headers-git-10.0.0.r130.g13f9449c1-1
              mingw-w64-x86_64-libgccjit-12.2.0-6
              mingw-w64-x86_64-libmangle-git-10.0.0.r130.g13f9449c1-1
              mingw-w64-x86_64-libwinpthread-git-10.0.0.r130.g13f9449c1-1
              mingw-w64-x86_64-make-4.4-2  mingw-w64-x86_64-ninja-1.11.1-2
              mingw-w64-x86_64-pkgconf-1~1.8.0-2
              mingw-w64-x86_64-tools-git-10.0.0.r130.g13f9449c1-1
              mingw-w64-x86_64-winpthreads-git-10.0.0.r130.g13f9449c1-1
              mingw-w64-x86_64-winstorecompat-git-10.0.0.r130.g13f9449c1-1

Total Download Size:     59.75 MiB
Total Installed Size:  1166.88 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages...
 mingw-w64-x86_64-gcc-ada-12.2.0-6-any is up to date
 binutils-2.39-2-x86_64            5.2 MiB  2.33 MiB/s 00:02 [###############################] 100%
 mingw-w64-x86_64-gdb-12.1-...     4.3 MiB  3.44 MiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-gettext-0...     3.1 MiB  2.60 MiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-headers-g...     5.6 MiB  1208 KiB/s 00:05 [###############################] 100%
 mingw-w64-x86_64-crt-git-1...     3.3 MiB  1249 KiB/s 00:03 [###############################] 100%
 mingw-w64-x86_64-tcl-8.6.1...     2.6 MiB  1914 KiB/s 00:01 [###############################] 100%
 groff-1.22.4-3-x86_64          2023.3 KiB  2.09 MiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-tk-8.6.12...  1987.0 KiB  1255 KiB/s 00:02 [###############################] 100%
 mingw-w64-x86_64-sqlite3-3...  1433.3 KiB  1285 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-openssl-1...     4.8 MiB   611 KiB/s 00:08 [###############################] 100%
 mingw-w64-x86_64-ncurses-6...  1757.8 KiB   676 KiB/s 00:03 [###############################] 100%
 mingw-w64-x86_64-isl-0.25-...  1396.6 KiB  1162 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-curl-7.86...  1400.1 KiB   873 KiB/s 00:02 [###############################] 100%
 texinfo-6.8-6-x86_64           1206.8 KiB  1862 KiB/s 00:01 [###############################] 100%
 bison-3.8.2-3-x86_64            770.0 KiB  1450 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-gcc-libgf...   853.0 KiB   748 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libarchiv...   823.7 KiB   823 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-gcc-libs-...   876.7 KiB   475 KiB/s 00:02 [###############################] 100%
 mingw-w64-x86_64-libiconv-...   720.2 KiB   849 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libunistr...   754.0 KiB   497 KiB/s 00:02 [###############################] 100%
 make-4.3-3-x86_64               466.2 KiB  1302 KiB/s 00:00 [###############################] 100%
 mingw-w64-x86_64-zstd-1.5....   494.9 KiB   475 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-binutils-...     5.9 MiB   523 KiB/s 00:12 [###############################] 100%
 mingw-w64-x86_64-ninja-1.1...   449.2 KiB   435 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-readline-...   387.2 KiB   435 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-xz-5.2.7-...   433.2 KiB   360 KiB/s 00:01 [###############################] 100%
 dos2unix-7.4.3-1-x86_64         369.6 KiB  1181 KiB/s 00:00 [###############################] 100%
 diffutils-3.8-3-x86_64          362.2 KiB  1176 KiB/s 00:00 [###############################] 100%
 mingw-w64-x86_64-brotli-1....   385.4 KiB   353 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-ca-certif...   330.7 KiB   503 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-mpfr-4.1....   356.9 KiB   306 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-p11-kit-0...   345.2 KiB   349 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-mpdecimal...   321.9 KiB   360 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-gmp-6.2.1...   558.6 KiB   131 KiB/s 00:04 [###############################] 100%
 flex-2.6.4-2-x86_64             302.6 KiB   946 KiB/s 00:00 [###############################] 100%
 mingw-w64-x86_64-tools-git...   316.3 KiB   447 KiB/s 00:01 [###############################] 100%
 m4-1.4.19-2-x86_64              238.1 KiB   909 KiB/s 00:00 [###############################] 100%
 mingw-w64-x86_64-libssh2-1...   255.0 KiB   355 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-jsoncpp-1...   228.6 KiB   342 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-rhash-1.4...   227.5 KiB   337 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-tzdata-20...   229.8 KiB   258 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-c-ares-1....   204.8 KiB   240 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-nghttp2-1...   200.8 KiB   340 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libtasn1-...   189.7 KiB   288 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libidn2-2...   163.0 KiB   289 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-expat-2.5...   155.8 KiB   249 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libuv-1.4...   192.0 KiB   179 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-lz4-1.9.4...   147.4 KiB   199 KiB/s 00:01 [###############################] 100%
 patch-2.7.6-1-x86_64            101.6 KiB   558 KiB/s 00:00 [###############################] 100%
 mingw-w64-x86_64-make-4.4-...   135.1 KiB   228 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-xxhash-0....   106.1 KiB   188 KiB/s 00:01 [###############################] 100%
 gperf-3.1-4-x86_64              101.4 KiB   409 KiB/s 00:00 [###############################] 100%
 mingw-w64-x86_64-zlib-1.2....   102.5 KiB   133 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-bzip2-1.0...    89.1 KiB   174 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libtre-gi...    84.2 KiB   144 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-pkgconf-1...    79.1 KiB   154 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libpsl-0....    73.0 KiB   150 KiB/s 00:00 [###############################] 100%
 mingw-w64-x86_64-libffi-3....    42.5 KiB  89.3 KiB/s 00:00 [###############################] 100%
 mingw-w64-x86_64-mpc-1.2.1...    72.7 KiB  86.9 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-winpthrea...    40.1 KiB  74.5 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libwinpth...    29.1 KiB  63.0 KiB/s 00:00 [###############################] 100%
 mingw-w64-x86_64-termcap-1...    28.0 KiB  48.1 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libsystre...    24.0 KiB  46.4 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libb2-0.9...    23.7 KiB  43.1 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-libmangle...    22.2 KiB  42.3 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-winstorec...    21.1 KiB  31.2 KiB/s 00:01 [###############################] 100%
 mingw-w64-x86_64-windows-d...     3.1 KiB  4.02 KiB/s 00:01 [###############################] 100%
 pkgconf-1.8.0-1-x86_64           58.4 KiB  7.23 KiB/s 00:08 [###############################] 100%
 diffstat-1.65-1-x86_64           29.2 KiB  3.93 KiB/s 00:07 [###############################] 100%
 texinfo-tex-6.8-6-x86_64         26.8 KiB  3.90 KiB/s 00:07 [###############################] 100%
 base-devel-2022.01-2-any          2.4 KiB   514   B/s 00:05 [###############################] 100%
 Total (72/72)                    59.8 MiB  2.27 MiB/s 00:26 [###############################] 100%
(79/79) checking keys in keyring                             [###############################] 100%
(79/79) checking package integrity                           [###############################] 100%
(79/79) loading package files                                [###############################] 100%
(79/79) checking for file conflicts                          [###############################] 100%
(79/79) checking available disk space                        [###############################] 100%
:: Processing package changes...
( 1/79) installing binutils                                  [###############################] 100%
( 2/79) installing m4                                        [###############################] 100%
( 3/79) installing bison                                     [###############################] 100%
( 4/79) installing diffstat                                  [###############################] 100%
( 5/79) installing diffutils                                 [###############################] 100%
( 6/79) installing dos2unix                                  [###############################] 100%
( 7/79) installing flex                                      [###############################] 100%
( 8/79) installing gperf                                     [###############################] 100%
( 9/79) installing groff                                     [###############################] 100%
(10/79) installing texinfo                                   [###############################] 100%
(11/79) installing texinfo-tex                               [###############################] 100%
(12/79) installing make                                      [###############################] 100%
(13/79) installing patch                                     [###############################] 100%
Optional dependencies for patch
    ed: for patch -e functionality
(14/79) installing pkgconf                                   [###############################] 100%
(15/79) installing base-devel                                [###############################] 100%
(16/79) installing mingw-w64-x86_64-libiconv                 [###############################] 100%
(17/79) installing mingw-w64-x86_64-zlib                     [###############################] 100%
(18/79) installing mingw-w64-x86_64-binutils                 [###############################] 100%
(19/79) installing mingw-w64-x86_64-headers-git              [###############################] 100%
(20/79) installing mingw-w64-x86_64-crt-git                  [###############################] 100%
(21/79) installing mingw-w64-x86_64-gmp                      [###############################] 100%
(22/79) installing mingw-w64-x86_64-isl                      [###############################] 100%
(23/79) installing mingw-w64-x86_64-mpfr                     [###############################] 100%
(24/79) installing mingw-w64-x86_64-mpc                      [###############################] 100%
(25/79) installing mingw-w64-x86_64-libwinpthread-git        [###############################] 100%
(26/79) installing mingw-w64-x86_64-gcc-libs                 [###############################] 100%
(27/79) installing mingw-w64-x86_64-windows-default-manifest [###############################] 100%
(28/79) installing mingw-w64-x86_64-winpthreads-git          [###############################] 100%
(29/79) installing mingw-w64-x86_64-zstd                     [###############################] 100%
(30/79) installing mingw-w64-x86_64-gcc                      [###############################] 100%
(31/79) installing mingw-w64-x86_64-gcc-ada                  [###############################] 100%
(32/79) installing mingw-w64-x86_64-gcc-libgfortran          [###############################] 100%
(33/79) installing mingw-w64-x86_64-gcc-fortran              [###############################] 100%
(34/79) installing mingw-w64-x86_64-gcc-objc                 [###############################] 100%
(35/79) installing mingw-w64-x86_64-expat                    [###############################] 100%
(36/79) installing mingw-w64-x86_64-gettext                  [###############################] 100%
(37/79) installing mingw-w64-x86_64-libtre-git               [###############################] 100%
(38/79) installing mingw-w64-x86_64-libsystre                [###############################] 100%
(39/79) installing mingw-w64-x86_64-ncurses                  [###############################] 100%
(40/79) installing mingw-w64-x86_64-bzip2                    [###############################] 100%
(41/79) installing mingw-w64-x86_64-libffi                   [###############################] 100%
(42/79) installing mingw-w64-x86_64-mpdecimal                [###############################] 100%
(43/79) installing mingw-w64-x86_64-libtasn1                 [###############################] 100%
(44/79) installing mingw-w64-x86_64-p11-kit                  [###############################] 100%
(45/79) installing mingw-w64-x86_64-ca-certificates          [###############################] 100%
(46/79) installing mingw-w64-x86_64-openssl                  [###############################] 100%
(47/79) installing mingw-w64-x86_64-termcap                  [###############################] 100%
(48/79) installing mingw-w64-x86_64-readline                 [###############################] 100%
(49/79) installing mingw-w64-x86_64-tcl                      [###############################] 100%
(50/79) installing mingw-w64-x86_64-sqlite3                  [###############################] 100%
(51/79) installing mingw-w64-x86_64-tk                       [###############################] 100%
(52/79) installing mingw-w64-x86_64-xz                       [###############################] 100%
(53/79) installing mingw-w64-x86_64-tzdata                   [###############################] 100%
(54/79) installing mingw-w64-x86_64-python                   [###############################] 100%
(55/79) installing mingw-w64-x86_64-xxhash                   [###############################] 100%
(56/79) installing mingw-w64-x86_64-gdb                      [###############################] 100%
Optional dependencies for mingw-w64-x86_64-gdb
    mingw-w64-x86_64-python-pygments: for syntax highlighting
(57/79) installing mingw-w64-x86_64-gdb-multiarch            [###############################] 100%
Optional dependencies for mingw-w64-x86_64-gdb-multiarch
    mingw-w64-x86_64-python-pygments: for syntax highlighting
(58/79) installing mingw-w64-x86_64-libgccjit                [###############################] 100%
(59/79) installing mingw-w64-x86_64-libmangle-git            [###############################] 100%
(60/79) installing mingw-w64-x86_64-make                     [###############################] 100%
(61/79) installing mingw-w64-x86_64-pkgconf                  [###############################] 100%
(62/79) installing mingw-w64-x86_64-tools-git                [###############################] 100%
(63/79) installing mingw-w64-x86_64-winstorecompat-git       [###############################] 100%
(64/79) installing mingw-w64-x86_64-c-ares                   [###############################] 100%
(65/79) installing mingw-w64-x86_64-brotli                   [###############################] 100%
(66/79) installing mingw-w64-x86_64-libunistring             [###############################] 100%
(67/79) installing mingw-w64-x86_64-libidn2                  [###############################] 100%
(68/79) installing mingw-w64-x86_64-libpsl                   [###############################] 100%
(69/79) installing mingw-w64-x86_64-libssh2                  [###############################] 100%
(70/79) installing mingw-w64-x86_64-nghttp2                  [###############################] 100%
(71/79) installing mingw-w64-x86_64-curl                     [###############################] 100%
(72/79) installing mingw-w64-x86_64-jsoncpp                  [###############################] 100%
(73/79) installing mingw-w64-x86_64-libb2                    [###############################] 100%
(74/79) installing mingw-w64-x86_64-lz4                      [###############################] 100%
(75/79) installing mingw-w64-x86_64-libarchive               [###############################] 100%
(76/79) installing mingw-w64-x86_64-libuv                    [###############################] 100%
(77/79) installing mingw-w64-x86_64-rhash                    [###############################] 100%
(78/79) installing mingw-w64-x86_64-ninja                    [###############################] 100%
(79/79) installing mingw-w64-x86_64-cmake                    [###############################] 100%
Optional dependencies for mingw-w64-x86_64-cmake
    mingw-w64-x86_64-qt6-base: CMake Qt GUI
    mingw-w64-x86_64-emacs: for cmake emacs mode
:: Running post-transaction hooks...
(1/1) Updating the info directory file...

Dustella@DESKTOP-VMFH9JG MINGW64 ~
#

然后这边就OK啦,可以参考网上的其他教程继续探索强大的msys2哦(⊙o⊙)

VScode 基础安装

首先,打开安装软件,勾选我同意此协议,然后点击下一步

这里选择安装位置,建议默认就好,然后点击下一步

这里是开始菜单的名字,默认就好,然后点击下一步

这边建议勾选下面四个,然后点击下一步

然后点击安装

然后点击完成就ok了

下面是VScode第一次启动的页面,右下角过一小会会提示你安装中文语言包,很贴心吧

你可以看主页上的提示,默认有四种主题可选,VScode是可以定制主题的,远不止这几种配色哦

点击了右下角的安装并重启后,我们可以点击左侧的插件按钮,打开插件侧边栏。

不小心关掉了提示也没关系,后面会教你手动安装中文语言包

VSCode 插件安装

vscode本身几乎不包含任何功能,它的强大体现在插件的丰富上。我们这边推荐你安装以下这些插件

C++ 插件推荐列表

插件名称作用备注
C/C++open in new windowC/C++语法提示,调试等
C/C++ Themesopen in new windowC++主题
Chinese (Simplified) (简体中文) Language Pack for Visual Studio Codeopen in new window汉化包需要重启vscode生效
CMakeopen in new windowCMake工具
CMake Toolsopen in new windowCMake工具
Markdown Preview Enhancedopen in new windowMarkdown预览工具打开方式有ctrl+shift+P搜索markdown或者先按ctrl+k松手再按v,注意vscode底部会有提示
Workspace Sidebaropen in new window快速切换工作区这边的配置
Code Runneropen in new window一键运行代码这边的配置
Doxygen Documentation Generatoropen in new window生成代码注释的小工具自行百度如何使用
vscode-iconsopen in new window图标美化
Better C++ Syntaxopen in new window不知道干啥的,装一下

上面的表格里列出了一些写C++用得到的插件和简要描述,有些可以自行选择安装

直接点击表格里的链接,会跳转一个网页,点击一下Install按钮,就可以唤起VScode跳转到插件安装页面了

出现下面的弹窗点击Continue

然后浏览器上方的弹窗记得允许打开VScode哦,这里是用edge浏览器演示的,其他浏览器可能会有所不同

VScode会弹出相应插件的页面,然后点击安装就可以了

这是安装完的插件列表,你也可以手动搜索相应的插件,或者安装你喜欢的插件哦。

VScode 使用方法

这边教你如何从网上克隆一个仓库,然后编译运行

前面你已经安装好了Git,你可以直接使用VScode里集成的Git图形化界面,不需要记住复杂的命令

点击左上角文件 - 新建窗口

VScode会提示你克隆一个仓库或者打开一个文件夹

这边我们选择克隆仓库,上方会弹出一个窗口,我们可以选择从github账户克隆,也可以直接粘贴仓库地址

我们这边使用第二种方法,直接粘贴仓库地址然后敲击回车

https://gitlab.dustella.net/discodyer/nytd-cpp-class-student-score.git

弹出的窗口是存放克隆的仓库的位置,可以创建一个专案文件夹,比如Projects,专门放各种仓库。但由于项目类型的不同,最好不要有中文的目录。比如Python程序对中文不敏感,但是C或者其他语言就可能会有问题。

这边就选择桌面作为存放的位置

弹出的窗口会询问你是否信任此文件夹,是为了安全考虑,默认会禁用插件。如果你信得过仓库内容的话,就信任文件夹吧。

右下角的提示是来自CMake Tools扩展的提示,询问你是否配置当前工程,根据你自己的情况来选择。

右上角的这个按钮是打开一个实时预览markdown文件的窗口,挺有用的。

我们点击下方的这个位置,会提示我们找一个编译器,先点击一下[Scan for kits]找一下我们系统里存在的编译器,我们这里就选择前面通过msys2安装的GNU GCC编译器。

然后会让你选择编译的选项,我们开发时期可以选择使用Debug模式,方便我们的调试。等程序需要发布的时候,或者有其他需要的时候,可以使用Release模式编译

然后点击下方的Build或者编译运行我们的工程

可以随便在某一行你感兴趣的代码处打一个断点,比如图中的第31行,然后点击下方的从🐞图标

会自动进入调试模式,程序会自动运行到你刚刚打的断点处然后暂停,你可以查看此时代码中内存里变量的数据,方便你查找错误

插件配置补充说明

Workspace Sidebar 工作区侧边栏插件

这个插件用于快速切换工作区,在VScode中,工作区是可以保存成一个单独的文件的。工作区是用于记录你当前窗口的所有状态的一个文件。

这个插件是用来快速切换不同的工作区,让你事半功倍哦

当然,也可以通过文件 - 打开最近的文件或者文件 - 从文件打开工作区代替该插件的功能

这个插件需要设置一个workspace文件夹,用于存放你的工作区,插件会列出该文件夹下存放的所有工作区文件。

这边建议在Onedrive中创建这个文件夹,这样可以通过Onedrive同步你的工作区,很有用哦

打开VScode文件 - 首选项 - 设置,或者使用快捷键Ctrl+,快速打开设置

搜索workspaceSidebar.folder,然后填上你设置的workspace文件夹

这时候,你每次打开一个工程,切换到这个插件的侧边栏的时候,都会提示你Save as new Workspace

你点击一下,然后选择保存到你设置的workspace文件夹中,下次就能快速切换过去了

Code runner 插件

这个插件可以快速运行代码,通过插件侧边栏,搜索formulahendry.code-runner

打开VScode文件 - 首选项 - 设置,或者使用快捷键Ctrl+,快速打开设置

搜索code-runner.runInTerminal,将这一项打上勾就行

然后你就可以使用编辑窗口右上角的按钮快速运行了,或者使用快捷键

运行文件:

  • 使用快捷键 Ctrl+Alt+N
  • 或者按 F1 然后选择/输入 Run Code
  • 或者右键文本编辑窗口然后点击 Run Code
  • 或者在文本编辑窗口的标题栏侧边点击按钮
  • 或者在文件浏览侧边栏右键文件,然后点击 Run Code

停止运行文件:

  • 使用快捷键 Ctrl+Alt+M
  • 或者按 F1 然后选择/输入 Stop Code Run
  • 或者在文本编辑窗口的标题栏侧边点击 Stop Code Run 按钮
  • 或右键单击输出通道,然后单击上下文菜单中的停止代码运行