当前位置: 首页 > news >正文

VsCode 配置 C/C++ 开发环境

简述一下步骤哈:

  1. 下载VsCode(这点大家都会哈)
  2. 下载MingG64(C/C++编译器【gcc】),配置环境变量
  3. 在VsCode配置一下C/C++运行时环境
  4. 测试运行

1、准备MingG64

VsCode 本身是没有C/C++编译的,这里我们自己去下载一个MingG64 就可以了。

下载地址页面:MingG64

在这个页面选择你想要的MingG64版本进行下载,能玩新的就玩新的哈,不然没劲哈。

我们选择的是这个x86_64-posix-seh,下载下来就是个7z的压缩包哈,无需安装的。

 

下载完,解压到自己想要放置的目录中去。

目录结构:

2、配置MingG64环境变量

这个蛮简单的哈。

先复制我们之前MingG64放置的路径位置,一直到bin路径哈。

如我的就是:D:\computeSoft\cpp\mingw64\bin

鼠标右键点击我的电脑–>点击 高级系统配置–>点击 环境变量点击新建将你的复制好的路径粘贴进去即可。

测试是否安装好

我们按下 win+r ,输入cmd,来命令行,输入gcc --version进行测试。弹出这样的就是配置成功了。

3、VsCode配置C/C++开发环境

3.1、安装C/C++扩展

创建一个空文件夹,确保这个文件夹所在的文件路径没有中文字符哈,不然会报错的。

然后我们用VsCode打开。

安装一下这个哈。

安装完成之后,直接在VsCode中按 ctrl+shift+p快捷键

出现以下界面: 直接搜索C/C++即可,我是因为已经搜过了。

搜到后点进去:这里附属一张中文翻译版本截图

3.2、修改生成的Json配置文件

用VsCode 打开这个空文件夹,新建一个test.cpp文件哈。

#include <stdio.h>
#include <windows.h>
int main()
{printf("Hello\n");system("pause"); // 保持窗口不被关闭哈 这个固定的方法我还没找到 只能先这么写了return 0;
}

打开launch.json文件,再次点击run--> add Configuration

之后我直接放图哈。点击运行–>以非调试模式运行。

点击后,弹出如下弹窗选项:                

附属上其他的人VsCode会默认生成一个.vscode文件夹:

平常在文章中看到的要编辑的json文件也就这两个了。

默认生成的文件如下:

c_cpp_properties.json

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe","cStandard": "c17","cppStandard": "gnu++14","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}

task.json

{"tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe build active file",//C语言就改成gcc.exe,C++就改成g++.exe"command": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "Task generated by Debugger."}],"version": "2.0.0"
}

我们需要添加或修改的地方:

第一个,将launch.json文件中第16行的externalConsole属性修改为true,这样就能弹出窗口第二个:在task.json文件中的tasks属性下的args中增加两行属性:

"-fexec-charset=GBK", // 处理mingw中文编码问题

"-finput-charset=UTF-8",// 处理mingw中文编码问题 

 4、测试运行,直接按ctrl+F5也能运行

#include <stdio.h>
#include <windows.h>
int main()
{printf("Hello World!\n");printf("很高兴,能够遇到你! \n");system("pause");return 0;
}

扩展:g++和gcc的区别

g++和gcc的区别:

1、对于不同后缀的文件当作程序不同。c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;对于.cpp后缀的文件,gcc和g++都会当做c++程序。gcc可以判断出目标程序所使用编程语言的类别,会把xx.c文件当做C语言编译,把xx.cpp文件当做C++语言编译。而g++只把xx.c和xx.cpp一律当做C++语言来编译

2、编译阶段调用不同,g++会调用gcc。

3、连接阶段方式不同,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。

4、在编译C++文件时,g++会自动连接一些标准库或基础库,而gcc不会,当正在编译的C++代码文件依赖STL标准库时候,为了使用STL,gcc命令需要增加参数-lstdc++。因此虽然gcc和g++都可以编译C++ 语言,但是使用g++会更方便一些。

gcc/g++在执行编译工作的时候,总共需要4步:第一步预处理,生成.i的文件预处理器cpp。第二步将预处理后的文件转换成汇编语言,生成文件.s编译器egcs。第三步有汇编变为目标代码(机器代码)生成.o的文件汇编器as。第四步连接目标代码,生成可执行程序链接器ld。

扩展: VSCode的Json配置

tasks.json

tasks.json 文件定义了 VSCode 中的构建任务。你可以配置 VSCode 在构建(编译)你的项目时应执行的操作。例如,使用 g++ 编译器编译 C++ 代码。

点击左上角...:终端:配置任务

点击:C/C++:g++.exe 生成活动文件

在.vscode文件夹自动创建了tasks.json,下面包含了完整解释:

 {// 配置文件版本"version": "2.0.0","tasks": [{// 任务名称"label": "C/C++: 使用 g++ 生成可执行文件",// 任务类型"type": "cppbuild",// 编译器路径"command": "g++.exe",// 编译参数"args": ["-fdiagnostics-color=always", // 彩色输出"-g",                         // 含调试信息"${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],// 当前工作目录"options": {"cwd": "${fileDirname}"},// 错误匹配器"problemMatcher": ["$gcc"],// 构建任务组,设为默认"group": {"kind": "build","isDefault": true},// 附加信息"detail": "由调试器自动生成的 C++ 编译任务"}]
}

launch.json

launch.json 文件定义了调试配置。你可以配置 VSCode 如何启动和调试你的应用程序,包括设置调试器路径、启动参数等。

点击左上角...:运行:添加配置

点击:C/C++(GDB/LLDB)

点击添加配置:{}C/C++: (gdb) Windows 上的 Bash 启动

在.vscode文件夹自动创建了launch.json,下面包含了完整解释:
 

{"version": "0.2.0","configurations": [{"name": "C/C++: 使用 gdb 启动调试","type": "cppdbg","request": "launch",// 设置为当前 .cpp 文件对应的可执行文件"program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb",// 推荐设置为 MinGW 的 gdb 完整路径(自动也可以)"miDebuggerPath": "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++ 生成可执行文件"}]
}

c_cpp_properties.json

c_cpp_properties.json是一个配置文件,用于指定C/C++项目的编译器和头文件路径等相关设置。

按Ctrl+Shift+P调出命令面板

输入C/C++: Edit Configurations (UI)并选择它

使用此编辑器编辑在基础c_cpp_properties.json文件中定义的 IntelliSense 设置。在此编辑器中所做的更改仅适用于所选的配置。要一次编辑多个配置,请转到 c_cpp_properties.json

在.vscode文件夹自动创建了c_cpp_properties.json,下面包含了完整解释: 

{// 配置数组// 包含所有代码配置的数组。"configurations": [{// 配置名称// 此配置的名称为“Win32”。"name": "Win32",// 包含路径// 编译时要包含的路径,可以使用通配符。"includePath": ["${workspaceFolder}/**"],// 预处理器定义// 编译时定义的预处理器宏。"defines": ["_DEBUG",    // 调试模式"UNICODE",   // 使用 Unicode 字符集"_UNICODE"   // 使用 Unicode 字符集],// 编译器路径// 指定编译器的路径。"compilerPath": "D:\\CPPcode\\MinGW\\bin\\gcc.exe",// C标准// 指定要使用的C语言标准。"cStandard": "c17",// C++标准// 指定要使用的C++语言标准。"cppStandard": "gnu++17",// IntelliSense 模式// 指定IntelliSense的模式。"intelliSenseMode": "windows-gcc-x64"}],// 配置文件版本// 此配置文件的版本。"version": 4
}

问题:如果碰到:

launch: program 'D:\projectCpp\cProject\demoCPP01' does not exist这类报错的,按照如下修改

1、确认编译的是C还是C++

如果是C,就将task.json中的command中的改成gcc.exe

如果是C++,这里就改成g++.exe

launch.json如果非需要,可以不配置,否则不会重新编译,感觉launch.json这个文件会在task.json之前执行,但是program这个参数表示可执行的文件,还是必填,此时文件还未编译就找不到文件

参考:

1、VsCode 配置 C/C++ 开发环境,真的很简单-腾讯云开发者社区-腾讯云

2、【操作与配置】VSCode配置C/C++及远程开发_vscode c++远程调试-CSDN博客

3、保姆级教程:C++/C 编程运行环境配置,C++/C 运行环境搭建_c++环境配置-CSDN博客

http://www.lryc.cn/news/579524.html

相关文章:

  • 【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(3)神经网络中的前向传播、反向传播的原理与实现
  • JavaScript的初步学习
  • 2021/7 N2 jlpt 词汇
  • npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree
  • Apache POI 详解 - Java 操作 Excel/Word/PPT
  • docker-compose一键部署全栈项目。springboot后端,react前端
  • 如何将信息从 iPhone 同步到Mac(完整步骤和示意图)
  • mac 电脑安装Homebrew来安装npm与node成功后,安装nvm的流程
  • MySQL 8.0 OCP 1Z0-908 题目解析(19)
  • 标准测试测试数据STDF学习笔记
  • MediaCrawler:强大的自媒体平台爬虫工具
  • Spring Boot 多 ActiveMQ 通道配置与多连接消息发送实战(含完整示例与踩坑记录)
  • Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
  • 一体机电脑为何热度持续上升?消费者更看重哪些功能?
  • 关于系统无法找到 arm-linux-gcc 命令,这表明你的环境中尚未安装 ARM 交叉编译工具链。以下是详细的解决方案:(DIY机器人工房)
  • 牛客:HJ16 购物单【01背包】【华为机考】
  • 封装 获取paramsByKey 方法
  • 毕业设计(启智模块化机器人的组装与K5的使用
  • 使用Visual Studio 2022创建CUDA编程项目
  • 车载交换机动态MAC学习和静态MAC绑定如何获取MAC地址表
  • jenkins角色权限
  • 这才叫窗口查询!TDEngine官方文档没讲透的实战玩法
  • 微信小程序41~50
  • 佰力博科技与您探讨压电材料的原理与压电效应的应用
  • C++(std::sort)
  • 【轨物洞见】光伏机器人与组件、支架智能化协同白皮书
  • 如何避免服务器出现故障情况?
  • SPLADE 在稀疏向量搜索中的原理与应用详解
  • 【NLP入门系列四】评论文本分类入门案例
  • ubuntu 6.8.0 安装xenomai3.3