vscode c++安装与单文件多文件编译配置(win10)
总体思路:
1下载Vscode ,mingw,cmake(用于多文件编译)
2配置
? 1>mingw,vscode,cmake环境变量
? 2>vscode
? 插件Chinese,code runner,C/C++,cmake,cmake tools等必须插件
? 通过一定的调试程序进行配置(编译单文件、多文件的配置操作不同)
注:mingw可以通过下载DEV-CPP来间接获取(建议),也可以从官网下载进行手动配置。
1、单文件C++配置
参考
安装配置VSCODE,配置环境变量
部分内容参照(解决–>调试时显示Unable to start debugging.The value of miDebuggerPath is invalid)
注:配置过程主要针对launch.json和tasks.json两个文件,在首次编译时,系统会自动生成两个文件,但需要对文件内容进行修改(直接复制下面内容之后,对相关路径进行修改)。
1.1launch.json内容(在.vscode中一次配置即可)
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
"environment": [],
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb",
"DebuggerPath": "G:/Dev-Cpp/MinGW64/bin/gdb32.exe", // miDebugger的路径,注意这里要与MinGw的路径对应——————去掉mi!!!
"preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
1.2tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++", //这里注意一下,见下文
"command": "G:/Dev-Cpp/MinGW64/bin/g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "G:/Dev-Cpp/MinGW64/bin"
},
"problemMatcher": [
"$gcc"
]
}
]
}
2、多文件编译C++配置
主要参考视频:
手把手教会VSCode的C++环境搭建,多文件编译,Cmake,json调试配置( Windows篇)_哔哩哔哩_bilibili
2.1基于g++ 指令的多文件编译
无需cmake,直接通过g++指令进行编译。
g++指令----配置launch.json----F5调试(支持断点调试)

g++ -g .\mian.cpp .\swap.cpp -o my_multi_swap
.\mian.cpp .\swap.cpp 为工程中的.cpp文件(不需要包含.h文件),my_multi_swap为编译后生成的可执行文件,输出的结果如下所示:

直接进行F5调试仍然会报错,需要配置launch.json。如下2处:program;注掉prelaunchtask。


2.2基于camke的多文件编译
1主要步骤
cmake环境变量已经配置成功的条件下:
在主目录上新建一个CMmakeLists.txt---编辑cmake文件内容----执行前进行额外的配置----终端输入指令,生成exe--进入launch.json配置---F5编译
如果代码发生改动 需要重新在终端输入 mingw32-make.exe 生成新的可执行文件 然后再F5
CMmakeLists.txt的内容:
project(MYSWAP)#指定工程名
add_executable(my_cmake_swap Maneger_main.cpp speechManager.cpp)#生成camke的exe文件,包括生成exe文件的名字 以及由哪几个文件生成的
add_definitions("-Wall -g")#调试时命中断点
额外的配置:
按下ctrl+shift+p 输入cmake 选择CMake:Configure 选择一个gcc编译器(选完后还可以通过下方进行更改)
结果:输出一系列dowm,创建了一个build文件夹


终端输入指令:
cd .\build\
回车
cmake ..
回车
mingw32-make.exe
回车

"program": "${workspaceFolder}/build/my_cmake_swap.exe",
2修改tasks.json亿劳永逸法
一劳永逸法:配置task.json,相当于执行终端输入指令:
cd .\build\
回车
cmake ..
回车
mingw32-make.exe
回车

{
"version": "2.0.0",
"options": { "cwd": "${workspaceFolder}/build"
},
"tasks":
[
{
"type": "shell",
"label": "cmake",
"command": "cmake",
"args": [
".."
]
},
{
"label": "make",
"group": {
"kind":"build",
"isDefault":true
},
"command":"mingw32-make.exe",
"args":[
]
},
{
"label":"Build",
"dependsOn":
[
"cmake",
"make"
]
}
],
}
修改launch.json
"preLaunchTask": "Build",
修改后,只需要按F5,就会重新自动生成exe文件进行编译
——————————————亿劳永逸法到此结束—————————————
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++",
"command": "G:/Dev-Cpp/MinGW64/bin/g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "G:/Dev-Cpp/MinGW64/bin"
},
"problemMatcher": [
"$gcc"
]
}
]
}
3可能出现的问题以及解决方法
//1-容器中嵌套容器的情况 ">>"需要写成“> >”
//2-初次编辑CMakeLists.txt时,cmake工具显示没有激活成功,cmake.cmakePath无法注册,无法智能补全。
//需要将cmake配置到自己的安装位置解决方法如下图。

|