将士出征,怎能没有一把利器,本文基于 VSC 搭建 C++ 开发环境
序
相信多数计算机专业的同学都和我一样,步入大学首先要学习的就是 C 语言。那么,我想下面这个东西你一定见过
记得当时令我好奇的就是,为什么这个 VC++6.0 里,行号、插件、快捷键……什么都没有呢??于是,历经 CodeBlocks、DevC++、VC++6.0 等编辑器后,我找到了致胜的法宝,今天的主角——VScode,这款工具在之前的博文中就有过推荐,点我直达
下面我们来一起配置下 C++ 的开发环境
Vscode — 编辑器
编辑器就是你写代码的地方,一款好的编辑器支持语法高亮、超多快捷键、代码提示等诸多功能
访问官网下载,不做细节介绍,一个字“好”
傻瓜式操作,直接下一步即可安装成功
mingw64 — 编译器
将源码文件编译为计算机能够执行的二进制代码文件,简单来说,代码是写给人看的,二进制文件是电脑看的,代码是人和机器交流的通道
访问链接,下载编译器
将下载下来的文件解压后,放到 C:\Program Files
文件夹下
添加环境变量 Path ,系统->关于->高级系统设置
编辑 Path 变量
加入 C:\Program Files\mingw64\bin
,然后一路确定下去
cmd
窗口键入 gcc --version
验证配置状态
显示图示信息则配置成功
插件支持
安装 C++ 语言支持拓展包
安装 coderunner (一键执行源程序)
.vscode 配置文件
打开 vscode,导入一个空文件夹
点击新建文件夹按钮
命名为 .vscode
,然后点击新建文件按钮,依次建立图示文件结构
其实对应的文件名称在后期编译时,vscode 会自动生成,但由于默认配置不太友好(比如生成的 exe 文件都在源文件下方,非常混乱),我们对此进行优化配置,注意对应的路径请填写你的配置路径
下面给出常用的配置文件(包含 .exe 重定向),可直接保存使用,定向 详细参考
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "C:\\Program Files\\mingw64\\bin\\gcc.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
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": [
{//包含Debug配置
"name": "gcc.exe - 生成和调试活动文件",//配置名称
"type": "cppdbg", //配置类型,对应cpptools提供的调试功能
"request": "launch", //请求配置类型,可以是启动/附加类型[launch/attach]
//"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"program": "${workspaceFolder}\\build\\${fileBasenameNoExtension}.exe",//待调试程序本地路径
"args": [], //程序调试时传递给程序的命令行参数,设为空值
"stopAtEntry": true,//改为true时程序暂停在程序入口位置,即main处打上断点
"cwd": "${fileDirname}", //调试程序时的工作目录,这里表示源码目录
"environment": [], //环境变量,设为空值
"externalConsole": false, //true:cmd窗口; false:Vscode的内置终端输出
"MIMode": "gdb", //指定连接的调试器,gdb为minGW64中调试程序
"miDebuggerPath": "C:\\Program Files\\mingw64\\bin\\gdb.exe", //指定调试器所在路径,安装位置不同注意需要修改,间隔为\\
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc.exe 生成活动文件" //调试开始前执行需要执行的任务,调试前要编译构建 名称要和tasks.json的label保持一致
}
]
}
tasks.json
{
"tasks": [
{//构建配置项
"type":"shell",//任务类型,Vscode将预定义变量转义解析后直接传给command;shell->先打开shell再输入命令,因此args会经过shell再次解析
"label": "C/C++: gcc.exe 生成活动文件",//任务名称
"command": "C:\\Program Files\\mingw64\\bin\\gcc.exe",//本地编译器路径
"args": [ //包含传给gcc命令的参数,用于实现特定功能
"-g", //生成和调试有关的信息
"${file}", //指定编译文件为当前文件
"-o",//指定输出文件的路径和名称
//"${fileDirname}\\${fileBasenameNoExtension}.exe"
"${workspaceFolder}\\build\\${fileBasenameNoExtension}.exe"//修改.exe文件生成位置
],
"options": {
//"cwd": "${fileDirname}"
"cwd": "C:\\Program Files\\mingw64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {//包含很多task,归为group
"kind": "build",//表名该组任务类型是构建
"isDefault": true//表明此任务为此组任务中的默认任务
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
环境验证
输入经典的 HelloWorld 程序,测试下环境
/*
* @Author: coder-jason
* @Date: 2022-04-04 09:57:31
* @LastEditTime: 2022-04-04 09:57:32
*/
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
return 0;
}
如果你是用了上方的配置文件,请在根目录下新建 build
文件夹,exe
文件会自动归类到此文件下
如果没有新建 build 文件夹,系统会提示你没有这样的文件夹,也就是找不到输出目录