零、前言
[此篇仅针对Windows系统]
可以在目录点击“配置方法”直接跳转
CodeRunner是一个非常强大的插件,支持多种语言的运行。但默认情况下运行C++源文件会在源文件目录下生成可执行文件(.exe),这会干扰我们的源文件目录。此篇即解决这一问题。
注:其实真正编写项目会用Cmake等的构建工具,不会出现这种问题。所以本篇其实是面向正在学习c++的初学者。
再注:本篇内容来自VScode-扩展-CodeRunner细节页。
一、配置VScode-CodeRunner-C++环境
在我的上一篇blog有说:
二、CodeRunner的运行原理
1.C++代码的运行原理
在没有IDE的情况下,我们可以使用Windows自带的cmd来运行我们的代码,分为预处理、编译、链接三步。通常我们可以用g++命令一下子完成这三步直接生成可执行文件。
如图,我先用记事本写一个HelloWorld
Win+R输入cmd,打开cmd

用cd命令打开HelloWorld的目录
运行g++进行预处理、编译、链接
这时我们可以发现在相同目录下出现了一个可执行文件(.exe)
在cmd中输入 .\a.exe 即可运行我们的程序
现在回望我们的操作,可以发现我们执行了一个序列的指令:
cd Desktop
g++ New.cpp
.\a.exe
那么我们只需要一次性输入这三条指令(这么说不严谨),即可实现一键运行的效果。
2.CodeRunner的运行原理
CodeRunner的运行原理相当简单,就是像上一节说的连续执行三条shell命令,来达到一键运行的效果。其代码如下:
"code-runner.executorMap": {
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt.exe",
},
在其中我们可以发现上一节指令序列的影子,那么我们只需要在其中加入新的shell命令就可以实现.exe分离的功能,修改后的代码如下:
"code-runner.executorMap": {
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && mv -Force $fileNameWithoutExt.exe $workspaceRoot\\.exe && cd $workspaceRoot\\.exe && $dir$fileNameWithoutExt.exe",
},
3.修改原理
实际上CodeRunner使用的是shell命令,通过&&来分隔不同的命令。
而我的做法就是在其中加入mv指令,使编译出的exe文件放在一个特定的文件夹中。
我这里是使用工作区下的.exe文件夹,即$workspaceRoot\\.exe文件夹。
在之后再用cd指令跳转到这个文件夹中,运行exe文件。
三、配置方法
1.打开VScode点击左下角齿轮
2.点击配置
3.输入 run code
4.找到 Executor Map 点击在setting.json中编辑
5.找到图中位置将“cpp”这行代码换成:

"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && mv -Force $fileNameWithoutExt.exe $workspaceRoot\\.exe && cd $workspaceRoot\\.exe && $dir$fileNameWithoutExt.exe",
5388

被折叠的 条评论
为什么被折叠?



