#2024.8.15以来的VScode踩坑记录
引言
本文仅作为本人对初次配置VScode环境的记录,不具备通用性。
自8.15进组以来,领到的第一个任务是安装VScode,之后将师兄师姐原先程序在自己的电脑上运行起来。
VScode安装与C/C++环境配置
下载与安装采用的是这篇:http://t.csdnimg.cn/nTun4
基本可以完成安装操作,但在运行时出现了
“preLaunchTask“C/C++:g++.exe生成活动文件“已终止,退出代码为-1“
经过排查是在复制前文的tasks.json 和 launch.json时,出现了tasks.json 中的 label 字段和 launch.json 中的 preLaunchTask 字段不相同的问题,具体解决方法在这篇:http://t.csdnimg.cn/4ICUq
至此完成配置,写了一段hello world 进行测试:
#include <iostream>
using namespace std;
int main()
{
//int input;
cout<<"hello world!"<<endl;
cout<<"按任意键继续"<<endl;
cin.get();
return 0;
}
运行后出现中文乱码问题。猜测是Windows终端的语言与编码问题,win+R --> cmd 打开控制台,输入chcp查看当前系统语言并修改成UTF-8,具体代码为:
代码页 | 国家/地区或语言 |
---|---|
437 | 英语(美) |
936 | 中文 |
65001 | UTF-8 |
安装与基本配置完成。
VScode中配置MSVC环境
调试一段时间后注意到原先使用的编译器是G++,但原先程序使用的是MSVC。根据这篇http://t.csdnimg.cn/p67du尝试开始配置环境。
结合官网Configure Visual Studio Code for Microsoft C++的内容,首先下载和安装VS并选配C++桌面开发环境。之后,与MinGW基本一致的方法:配置.json文件。分别是settings.json,引号里是MSVC文件夹下cl.exe的地址;
{
"C_Cpp.default.compilerPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.41.34120\\bin\\Hostx64\\x64\\cl.exe"
}
launch.json完全是官网复制的;
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++: cl.exe build and debug active file",
"type": "cppvsdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "C/C++: cl.exe build active file"
}
]
}
tasks.json也是官网复制的,但为避免每次都从Developer Command Prompt for VS 2022启动(否则找不到cl.exe),选择官网Run VS Code outside the Developer Command Prompt中的办法。
{
"version": "2.0.0",
"windows": {
"options": {
"shell": {
"executable": "cmd.exe",
"args": [
"/C",
// The path to VsDevCmd.bat depends on the version of Visual Studio you have installed.
"\"C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/Tools/VsDevCmd.bat\"",
"&&"
]
}
}
},
"tasks": [
{
"type": "shell",
"label": "cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}"
],
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"type": "cppbuild",
"label": "C/C++: cl.exe 生成活动文件",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/nologo",
"/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$msCompile"
],
"group": "build",
"detail": "编译器: cl.exe"
},
{
"type": "cppbuild",
"label": "C/C++: cl.exe 生成活动文件",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/nologo",
"/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$msCompile"
],
"group": "build",
"detail": "编译器: cl.exe"
}
]
}
之后切换会需要运行的程序,按Ctrl+Shift+B运行,出现以下内容表示成功:
最后,在终端中输入main.exe,即可运行。