【Wins+VSCode】配置C++开发环境
创始人
2024-01-22 11:48:56

目录

  • 1、安装vscode
  • 2、安装中文包和c++扩展包
  • 3、安装c++编译工具:g++
  • 4、运行代码测试
  • 5、lauch.json
  • 6、tasks.json
  • 7、问题
    • 7.1、找不到gcc任务
  • Reference

1、安装vscode

官网下载就可以了,免费的: https://code.visualstudio.com/

2、安装中文包和c++扩展包

直接在左侧找到扩展按键,安装c++扩展包:
在这里插入图片描述

3、安装c++编译工具:g++

直接安装 https://sourceforge.net/projects/mingw-w64/files/

再把安装好的mingw加入系统环境变量:
在这里插入图片描述
验证是否安装成功:
在这里插入图片描述

4、运行代码测试

新建测试文件:

#include
using namespace std;
int main()
{cout << "hello world" << endl;return 0;
}

点击以调试/非调试模式运行:

在这里插入图片描述
选GDB:
在这里插入图片描述
选g++:
在这里插入图片描述

这个时候就可以正常运行显示结果了,程序可以正常执行,调试、运行都可以。
在这里插入图片描述
但是细心的同学可以发现,在左侧文件此时多了两个文件:lauch.json、tasks.json。这是两个非常重要的文件,是整个开发的重点配置,需要好好了解清楚他们是干嘛的。

5、lauch.json

功能:用于添加gdb调试任务,运行可执行文件。

初始化生成:

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "g++.exe - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe",  // 调用的exe名,要与tasks生成的exe名一致"args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,  // // 决定输出是单独外部黑窗口显示,还是在IDE里终端黑窗口显示"MIMode": "gdb","miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}], "preLaunchTask": "C/C++: g++.exe 生成活动文件"   // 此项命名需要与tasks.json中的label项命名一致,作用是每次调用launch时会先调用tasks.json,从而不用自己每次都ctrl+shift+b手动生成最新任务后,才能调用launch}]
}

【参数】

  1. program:为要调试程序的路径;
  2. args:运行时添加的参数;
  3. stopAtEntry:默认False,True则会在函数入口中赞停;
  4. externalConsole:是否在外部控制外运行,设置为true会弹出windows的运行窗口;
    5. miDebuggerPath:本机的gbd调试器的路径;
  5. setupCommands:启动调试前为GDB调试器设置相应的命令;
    7. preLaunchTask:运行调试前执行的任务填写task.json文件里面的任务名(label项);

6、tasks.json

功能:相当于gcc编译步骤汇总,也可以调用makefile,最终生成可执行文件。

描述了需要调用什么命令来执行任务,相当于直接在命令行cmd中执行命令。对应到c++开发,就是程序构建的过程。

初始化生成:

{"tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件",  // 需与lauch.json中"preLaunchTask"项命名一致"command": "D:\\mingw64\\bin\\g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"  // 输出exe名,要与launch中调用的program项命名一致],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}],"version": "2.0.0"
}

【参数配置】

  1. label:此任务的名称,会被lanch.json中的preLaunchTask所使用;
  2. command:执行的命令,如果时C++开发,就是g++gcc这些构建命令,这里一半写系统的环境变量中的g++地址;
  3. args:执行命令时的输入参数,g++一般就采用默认的;

7、问题

关注上面的加黑的几个参数,配置好了一般不会有什么问题。

7.1、找不到gcc任务

tasks.json里的label名字和launch.json中的preLaunchTask名字没对应上,导致编译后launch不到对应exe。

分析:tasks.json是编译,launch.json是运行exe,tasks.json在lanuch之前。tasks里的label一定要跟launch.json中的preLaunchTask名字对应一致。否则会报找不到gcc任务错误。

Reference

b站: 【教程】VScode中配置C语言/C++运行环境

知乎: vscode如何在最新版本中配置c/c++语言环境中的launch.json和tasks.json?

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
ps局部放大 放大某个部位的图... 软件类学习建议:边看边练习,可以先收藏后学习。一、使用Ctrl快捷键放大:Ctrl + +缩小:Ct...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
ps局部放大 放大某个部位的图... 软件类学习建议:边看边练习,可以先收藏后学习。一、使用Ctrl快捷键放大:Ctrl + +缩小:Ct...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...