VsCode 配置 C/C++ 开发环境
简述一下步骤哈:
- 下载VsCode(这点大家都会哈)
- 下载MingG64(C/C++编译器【gcc】),配置环境变量
- 在VsCode配置一下C/C++运行时环境
- 测试运行
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博客