总结
如果说使用code runner只需要安装好MinGW和clang并且配置好环境变量即可,当然这个只可以运行代码并不支持调试的功能,如果使用调试则需要用下面的方法。
1、code runner用法
1.1 运行代码
- 使用捷径
Ctrl+Alt+N
- 或按
F1
,然后选择/键入Run Code
- 或右键单击“文本编辑器”,然后Run Code在编辑器上下文菜单中单击
- 或Run Code在编辑器标题菜单中单击按钮
- 或Run Code在文件资源管理器的上下文菜单中单击按钮
1.2 停止运行的代码:
- 使用捷径
Ctrl+Alt+M
- 按F1,然后选择/键入
Stop Code Run
- 右键单击“输出通道”,然后
Stop Code Run
在上下文菜单中单击
2 选择相应的语言运行代码
要选择要运行的语言,请使用快捷方式Ctrl+Alt+J
,或按F1
,然后选择/输入Run By Language
。
然后输入或选择要运行的语言:例如php, javascript, bat, shellscript…
3 修改或查看运行指令
确保在环境变量中设置了每种语言的执行者PATH。
您也可以在其中添加条目code-runner.executorMap
以设置执行程序PATH。
例如,为ruby,php和html设置执行者路径:
{
"code-runner.executorMap": {
"javascript": "node",
"php": "C:\\php\\php.exe",
"python": "set PYTHONIOENCODING=utf8 && python $fullFileName",
"perl": "perl",
"ruby": "C:\\Ruby23-x64\\bin\\ruby.exe",
"go": "go run",
"html": "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"",
"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
"c": "chcp 65001 && clear && cd $dir && gcc *.c -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe",
}
}
如果使用C或者C++实现多文件编译
那么需要进行修改为如下所示
"c": "cd $dir && gcc *.c -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe",
"cpp": "cd $dir && g++ *.cpp -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe",
3.1 支持的自定义参数
- $ workspaceRoot:在VS Code中打开的文件夹的路径
- $ dir:正在运行的代码文件的目录
- $ dirWithoutTrailingSlash:运行的代码文件目录不带斜杠
- $ fullFileName:正在运行的代码文件的全名
- $ fileName:正在运行的代码文件的基本名称,即没有目录的文件
- $ fileNameWithoutExt:代码文件的基本名称,不带扩展名
- $ driveLetter:正在运行的代码文件的驱动器号(仅Windows)
- $ pythonPath:Python解释器的路径(由Python: Select Interpreter命令设置)
请注意反斜杠和执行程序文件路径中的空格
反斜杠:请使用 “\\”
如果文件路径中有空格,请使用“\”包围文件路径
4 需要注意的问题
问题1:运行后出现无法识别"gcc"等指令,前提是已经安装了MinGW并且配置了环境变量。
解决方法一:安装的VS Code有可能时便携版本(ZIP)或者没有安装到C盘下,导致没有管理员权限,所以运行的时候有些指令没办法完成。我们需要做的是VS Code默认打开为管理员身份即可。
5 中文乱码的现象
- 文件 – 首选项-- 设置 搜索 Code-runner: Run In Terminal , 在复选框中打勾
- 如果上面没有搜索结果,搜索 code-runner.executorMap, 点击在settings.json中编辑, 增加如下配置行 “code-runner.runInTerminal”: true,
上述还不行那就直接更改在settings.json中C和C++的运行命令
"c": "chcp 65001 && clear && cd $dir && gcc *.c -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe",
"cpp": "chcp 65001 && clear && cd $dir && g++ *.cpp -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe",
6 配合clang使用
修改成下述即可。
"c": "chcp 65001 && cd $dir && clang *.c -o $fileNameWithoutExt.exe -I './include/' -Wall -g -O2 -static-libgcc --target=x86_64-w64-mingw -std=c11 && &'$dir$fileNameWithoutExt'",
"cpp": "chcp 65001 && cd $dir && clang++ *.cpp -o $fileNameWithoutExt.exe -I './include/' -Wall -g -O2 -static-libgcc --target=x86_64-w64-mingw -std=c++17 && &'$dir$fileNameWithoutExt'",
7 C/C++编译环境 (MinGW GCC)
前提:需要安装MinGW和添加PATH变量。
7.1 c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "F:\\mingw64\\bin\\g++.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
7.2 launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",//要调试的文件
"args": [],//参数设置,默认不理
"stopAtEntry": false,//true入口暂停,main一开始就暂停,改为false
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,//外部控制台显示,false则显示在VScode里
"MIMode": "gdb",
"miDebuggerPath": "F:\\mingw64\\bin\\gdb.exe",//调试使用,自己用的时候路径要改
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build" // 调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应
}
]
}
7.3 tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": ["-g", "${file}", "-o","${fileBasenameNoExtension}.exe"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}