ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

玩玩 Visual Studio Code 和 MSYS2

2021-07-31 01:32:34  阅读:434  来源: 互联网

标签:code exe bfsu pacman Visual Code Studio 安装 MSYS2


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

image

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

image

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

image

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

image

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

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

使用 MSYS2 的亿点提示

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

image

  • 修改软件源

参见 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

image

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

image

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

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

  • 安装 GCC

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

image

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

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

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

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

pacman -S mingw-w64-x86_64-gdb

配置环境变量

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

image

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

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

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


往下翻,找到“高级系统设置”,找到“环境变量”,找到“用户变量”(为当前用户配置)或者“系统变量”(为所有用户配置)里的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++ 有什么反应。

image

Visual Studio Code 的配置

image

建议把你刷题的代码放在一个文件夹里,每次都用 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"

image

【未完待续】

标签:code,exe,bfsu,pacman,Visual,Code,Studio,安装,MSYS2
来源: https://www.cnblogs.com/e792a8/p/15079618.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有