VSCode 配置 C/C++ 开发环境( MSVC )
0. 使用工具说明:
- 本文使用的 VSCode 是从官网下载的,有相应的 32 位和 64 位版本,支持 Win 7 和 Win 10。
- 本文使用的生成工具是从 https://appzip.cn/vc2010 上提供的 VC2010 中提取出来的 32 位 MSVC 工具链,在 Win 7 或 Win 10 的 64 位或 32 位系统都能成功使用。
1. 无需配置的绿色版本
- 下载链接:https://www.aliyundrive.com/s/DMK13owZSrC
- 解压后,运行里面的 VCVars.bat(只需要运行一次),它的作用是帮助您快速设置环境变量。
- 再运行 ShortCut.bat 它会在您的桌面上生成 VSCode 的快捷快捷方式。
- 打开运行 VSCode,如果 VSCode 依然是英文界面,那么需要重新启动 VSCode 一次,就能正确加载语言包插件。
- 在绿色版里配套了一个 Sample 的文件夹,用 VSCode 打开它,就能看到一个使用 EasyX 的例子。
- 创建新项目时,只需要把 Sample\.vscode 文件夹移到您的项目于内容下,就可以避免重复配置。
绿色版压缩包内文件结构
├ VCompiler<folder> // VC 生成工具根目录
├ VSCode<folder> // VSCode 根目录
├ Sample<folder> //例子文件夹
│ ├ .vsocde<folder> //保存配置的文件夹
│ │ ├ task.json
│ │ ├ launch.json
│ │ └ c_cpp_properties.json
│ └ main.cpp //源文件
├ ReadMe.txt //使用说明
├ VCVars.bat //设置环境变量
└ ShortCut.bat //生成桌面快捷方式
2. 手动配置
视频教程:https://pan.baidu.com/s/1LvN2G3-RYlAgT7q1cVg-dA 提取码:1234
文字教程:
前往 https://code.visualstudio.com/ 下载 VSCode,安装完成,点击运行。按住 Ctrl + Shift + X 键或者点击 VSCode 左侧第 5 个按钮 .
然后搜索 Chinese,安装简体中文插件进行汉化,喜欢英文原版可以跳过此步。这里认为你选择了中文插件。安装中文插件之后,搜索 C++,下载第一个 C/C++ 插件。
前往链接:https://pan.baidu.com/s/1NoNGblBZmjXU_Pya4jJpCg 提取码:1234 下载所需的 VC 生成工具。
解压后(以解压在 D:\App 下为例),进行设置环境变量。
新建 LIB 环境变量填入 D:\App\VCompiler\lib
新建 INCLUDE 环境变量填入 D:\App\VCompiler\include
在 PATH 变量中追加 D:\App\VCompiler\Bin
新建一个文件夹(假设是 D:\Project),用 VSCode 打开它,按住 Ctrl + Shift + P 键,输入 C++,会有一个下拉列表,选择 编辑 C++:编辑配置(UI)选项,
然后会出现一个 ” C/C++ Configurations “ 的配置页面,这个配置是用来配置 IntelliSense,它可以提供语法检查的功能,在语法错误的位置画红色波浪线。
配置名字可以任你填写。然后下滑到编译器选项,填入 D:\App\VCompiler\Bin\cl.exe。
IntelliSense 模式中选择 windows-msvc-x86 选项(因为提供的生成工具是 32 位的 vc2010 的生成工具)。
包含路径选项是加入您额外添加的头文件的路径,可以自行根据需要添加。
定义选项是给 IntelliSense 添加预定义宏。可以自行根据需要添加。(里面默认定义了 UNICODE 和 _UNICODE 是为了设置 Unicode(宽)字符集,删除后是多字节(窄)字符集,DEBUG 是设置调试宏,删除后是 Release 模式)。
下面的 C 和 C++ 标准,分别选择 C11 和 C++11 即可。
配置过后如下:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "windows-msvc-x86",
"compilerPath": "D:\\App\\VCompiler\\bin\\cl.exe"
}
],
"version": 4
}
设置完 C++ 配置后,可以新建一个 main.cpp 文件,简单写一个 helloworld 代码。
点击终端中的配置任务选项,这个是决定 VC 生成工具如何生成 exe。
接着会出现一个下拉列表,选择 C/C++ : cl.exe 生成活动文件。然后会自动进入 task.json 的编辑页面。C/C++ 插件已经默认配置完毕,但需要在里面的 args 选项中加入 /DUNICODE,/DUNICODE,/DEBUG。
这是为了让生成工具预定义使用宽字节字符集和调试模式下的宏,可以根据需要自行追加,配置过后如下:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: cl.exe 生成活动文件",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/nologo",
"/DUNICODE",
"/D_UNICODE",
"/DEBUG",
"/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}"
],
"options":
{
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$msCompile"
],
"group": "build",
"detail": "编译器: cl.exe"
}
]
}
配置生成任务后,回到 main.cpp 页面,点击终端选项中的运行生成任务,选择提示已配置的任务。底下会出现一个终端框,里面会有生成结果的显示。出现”生成已成功完成“就表示生成成功,而 VSCode 的左侧文件目录会多出
几个文件,可以看到编译生成的可执行文件 main.exe。
有了编译还不够,还需要一个调试的配置。
选择 VSCode 上方运行选项中的添加配置,选择出现的下拉列表中的 C++(WIindows)。进入 launch.json 的编辑界面,点击右下方的添加配置按钮,将出现一个下拉选择列表,选择里面的 C/C++(windows) 启动。
VSCode 会自动添加相关配置,我们需要修改里面的 program 项,修改为"${fileDirname}\\${fileBasenameNoExtension}.exe",这样 VSCode 便能正确设置被调试文件。配置好后如下文:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) 启动",
"type": "cppvsdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"console": "externalTerminal"
}
]
}
配置完毕后,回到 main.cpp 页面,点击上方运行选项中的非调试模式运行(或者按下 Ctrl + F5),VSCode 会自动执行我们通过生成任务生成的 exe。
调试的方法是在下好断点后,点击上方运行选择中的启动调试(或者按下 F5),就会开始进入调试模式。左侧的文件目录框也会变成调试界面框。
这样调试和编译就完成了,在您的其他项目中,为了不必要的重复配置,可以把文件目录里的 如 C:\Project\.vscode 文件夹复制到您的项目文件夹里,这个 .vscode 文件夹保存的是您的配置文件。
类似这样的文件结构:
VSCode 项目文件结构
├ .vscode <folder> //保存配置的文件夹
│ ├ task.json
│ ├ launch.json
│ └ c_cpp_properties.json
│
├ other.h //第三方头文件
├ other.cpp
│
└ main.cpp //源文件
3. 使用 EasyX
VC 生成工具里面已经加入了 Easyx 的头文件和库文件,但还需要在您的生成任务 (task.json) 配置中加入这些库:shell32.lib gdi32.lib user32.lib ole32.lib
像下文这样。
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: cl.exe 生成活动文件",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/nologo",
"/DUNICODE",
"/D_UNICODE",
"/DEBUG",
"/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}",
"user32.lib",
"ole32.lib",
"gdi32.lib",
"shell32.lib",
],
"options":
{
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$msCompile"
],
"group": "build",
"detail": "编译器: cl.exe"
}
]
}
4. 其他事项
如果需要多文件编译,假设这里您有一个 a.h 和 a.c,需要在 args 里面加入 a.c,调整后的大致如下所示:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: cl.exe 生成活动文件",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/nologo",
"/DUNICODE",
"/D_UNICODE",
"/DEBUG",
"/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}",
"a.c",
"user32.lib",
"ole32.lib",
"gdi32.lib",
"shell32.lib",
],
"options":
{
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$msCompile"
],
"group": "build",
"detail": "编译器: cl.exe"
}
]
}
在您的其他项目里若引用了第三方库,需要在 .vscode\task.json 里 args 项加入相关库的引用。
args 项是 cl.exe 的命令行参数,想了解更多。可以前往 https://docs.microsoft.com/ 中查询相关用法。
想了解更多关于 VSCode 的环境配置,可以前往一下官方的三个链接:
1.VSCode On MSVC:https://code.visualstudio.com/docs/cpp/config-msvc
2.VSCode On GCC:https://code.visualstudio.com/docs/cpp/config-mingw
3.VSCode On WSL_GCC:https://code.visualstudio.com/docs/cpp/config-wsl
添加评论
取消回复