玩玩 Visual Studio Code 和 MSYS2

众所周知 Visual Studio Code 是一个优秀的编辑器。

玩玩 Visual Studio Code 和 MSYS2

众所周知 MSYS2 是一个方便快捷的开发环境部署工具。

玩玩 Visual Studio Code 和 MSYS2

众所周知 https://mirrors.tuna.tsinghua.edu.cn/ 是一个宝藏网站。

玩玩 Visual Studio Code 和 MSYS2

众所周知 https://mirrors.bfsu.edu.cn/ 是另一个宝藏网站。

玩玩 Visual Studio Code 和 MSYS2

GCC 的安装与环境变量的配置

首先你需要安装 MinGW 或者 MSYS2 (推荐使用后者,切换镜像源后速度非常快,安装和更新非常方便)(如果你使用 Linux 操作系统,那么忽略这一步)。

使用 MSYS2 的亿点提示

MSYS2 可以在上面所述网站右侧“获取下载链接”处获取.

玩玩 Visual Studio Code 和 MSYS2

  • 修改软件源

参见 tuna 的教程 bfsu 的教程

目测 bfsu 速度比 tuna 快不少,大概是访问流量的原因。

亲身经历,以前有时候自动更新会把改过的源地址覆盖掉,又得重新配置(现在可能不会了?)。所以我在~/.bashrc底下加了两行,每次打开 MSYS2 就把镜像源改成 bfsu ,其他地址直接丢弃。

echo "Server = https://mirrors.bfsu.edu.cn/msys2/mingw/x86_64" > /etc/pacman.d/mirrorlist.mingw64
echo "Server = https://mirrors.bfsu.edu.cn/msys2/msys/\$arch" > /etc/pacman.d/mirrorlist.msys
echo "Server = https://mirrors.bfsu.edu.cn/msys2/mingw/ucrt64" > /etc/pacman.d/mirrorlist.ucrt64
echo "Server = https://mirrors.bfsu.edu.cn/msys2/mingw/clang64" > /etc/pacman.d/mirrorlist.clang64

玩玩 Visual Studio Code 和 MSYS2

好像现在没什么人用32位的电脑了?我在/etc/pacman.conf里把 mingw32 相关的项目注释掉了,不知道我想得对不对。

玩玩 Visual Studio Code 和 MSYS2

之后执行命令pacman -Syu更新软件,提示是否继续的时候直接回车也可以。

有时候会需要更新两次,第一次把 MSYS2 自己更新了,第二次才更新其他软件。

  • 安装 GCC

执行命令pacman -Ss gcc会列出很多结果,我们一般使用mingw64系列的这个:

玩玩 Visual Studio Code 和 MSYS2

另外还会看到一个msys系列的 GCC ,但是听说过好像有些接口差异/性能之类的原因,我不打算使用。

ucrt64clang64系列应该是前不久才增加的,还没有研究过。

执行命令pacman -S mingw-w64-x86_64-gcc安装 MinGW GCC 。

如果你还想要使用 vscode 的 F5 调试功能,还得安装 GDB 。

pacman -S mingw-w64-x86_64-gdb

配置环境变量

在你桌面的“此电脑”上右键,选择属性。得是一个真正的“此电脑”图标,快捷方式不行。

玩玩 Visual Studio Code 和 MSYS2

什么,你说你的桌面上没有真正的“此电脑”图标?

开始菜单 > 设置 > 个性化 > 主题 > (往下翻)桌面图标设置。

如果你属实不想要“此电脑”图标,那么进入设置 > 系统 > 关于,也是同样效果。


往下翻,找到“高级系统设置”,找到“环境变量”,找到“用户变量”(为当前用户配置)或者“系统变量”(为所有用户配置)里的Path

如果你使用 MSYS2 安装 mingw64 gcc 那么新建一条:<你的MSYS2安装目录>\mingw64\bin,比如我的 MSYS2 安装在D:\msys64,我的这条就是D:\msys64\mingw64\bin。你可以去这个路径确认一下是不是有gcc.exe之类的软件。如果你安装的是其他系列比如 msys 的 gcc 那可能要按实际情况把里面的mingw64换成别的什么。如果你安装的不是 MSYS2 而是 MinGW ,那么按照你的实际情况操作。最后要点确定。

现在随便开一个 cmd 或者 powershell 什么命令行,看看执行 gcc 或者 g++ 有什么反应。

玩玩 Visual Studio Code 和 MSYS2

Visual Studio Code 的配置

玩玩 Visual Studio Code 和 MSYS2

建议把你刷题的代码放在一个文件夹里,每次都用 vscode 打开这个文件夹。

建议安装 Microsoft 的 C/C++ 插件(代码补全/高亮/调试运行)和 Jun Han 的 Code Runner 插件(快速运行,可自定义命令)。另外可以安装 clangd 插件(可以在 MSYS2 安装mingw-w64-x86_64-clang-tools-extra)获得更强大的代码提示支持。

Code Runner 配置

  • 用户设置

code-runner.runInTerminal 打开。默认程序会跑在 vscode 的“输出”窗,那里没法接收你的输入。

code-runner.ignoreSelection 打开。防止你选择了一段代码然后开始运行,结果 Code Runner 只把你选择的那部分抄下来跑。

code-runner.fileDirectoryAsCwd 推荐打开。这样编译的时候会先 cd 到你文件目录里去。

code-runner.saveFileBeforeRun 打开。

code-runner.executorMap 默认的运行命令有些缺陷,在文件名或路径存在空格/点号之类奇奇怪怪的情况下会出错。我把里面C/C++有关的项目改成了这个样子:

...
"c": "gcc $fileName -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe",
"cpp": "g++ $fileName -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe",
...
  • 工作区设置

这里改一些方便刷题的设置。

code-runner.customCommand 改成:cd $workspaceRoot; ls * -include *.exe -recurse | rm,这样按 Ctrl + Alt + K 会自动把你编译出的.exe文件全部清理掉。

上面的截图里我在根文件夹建了个in.txtout.txt,然后把它们放在边上,输入数据放在一边,输出数据会自动放到另一边。实现这样的效果可以改这里:

code-runner.executorMap

"cpp": "$workspaceRoot/out.txt && g++ $fileName -o $fileNameWithoutExt.exe && cat $workspaceRoot/in.txt | $dir$fileNameWithoutExt.exe > $workspaceRoot/out.txt"

玩玩 Visual Studio Code 和 MSYS2

【未完待续】

上一篇:H3C三层交换机配置IP


下一篇:三张图带你弄懂stl内存分配器,再也不怕面试官问了