VScode配置launch+tasks[自己备用]

2024-04-17 14:28

本文主要是介绍VScode配置launch+tasks[自己备用],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • VScode配置launch+tasks[自己备用],配置文件详解

launch.json
字段 name :启动配置的名称,也就是显示在调试配置下拉菜单中的名字,如果添加了多个配置可以用此作为区分
字段 program :可执行文件完整路径。

① 由于 C++ 程序需要编译为可执行程序才能运行,此处即为该文件的完整路径。
② 其中 ${...} 为 VS Code 的路径引用符号, ${fileDirname} 为项目工作目录, ${fileBasenameNoExtension} 为不带扩展名的文件名称
将其组合起来 ${fileDirname}\\${fileBasenameNoExtension}.exe 表示以当前文件名命名的 .exe 文件所在路径,也就是项目启动路径。

字段 cwd :cpp 文件的工作目录
字段 miDebuggerPath :你安装的 C++ 调试程序 gdb.exe 的路径
字段 preLaunchTask :启动调试前的预处理过程(也就是生成可执行程序 .exe 文件的过程)的名称

① 我们需要知道,C++ 程序调试过程分为编译和运行,而 launch.json 是启动(运行)时的配置,在这之前还需要进行编译生成可执行文件,tasks.json 配置文件即为编译时的配置。
② preLaunchTask 字段的内容即为编译过程的任务名称,VS Code 根据这个名字找到对应的 tasks 编译配置并运行它,所以该字段的内容必须要和 tasks.json 文件中的 label 字段保持一致,否则将无法找到编译配置,也就无法生成 .exe 可执行文件。

tasks.json
字段 label :编译过程的任务名称,需要和 launch.json 中的 preLaunchTask 字段保持一致
字段 command :你电脑安装的 C++ 编译器 g++.exe 的路径
字段 args :g++.exe 编译过程的可选参数

① 参数 "-g" 的下面一行的 "${file}" 表示需要编译的文件为当前调试文件。
② 参数 "-o" 的下面一行的 "${fileDirname}\\${fileBasenameNoExtension}.exe" 表示生成的可执行文件的位置,一般需要和 launch.json 的 program 字段保持一致。

如果你不想让生成的可执行文件与源代码文件放在一起,而是放在另一个文件夹里(这个文件夹必须存在),你可以这样设置:
① tasks.json 中字段 args 中参数 "-o" 的下面一行的 ${fileDirname} 修改为你自定义的文件夹路径
② launch.json 中字段 program 中的 ${fileDirname} 也修改为你自定义的文件夹路径
这样当你调试 C++ 程序时,可执行文件(.exe)就会生成在你设置的路径下,而不是和源文件(.cpp)混在一起了

 launch.json

{"version": "0.2.0","configurations": [{"name": "C/C++: g++.exe 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "F:\\RedPanda-CPP-GCC11.2_Portable.2.3\\MinGW64\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "C/C++: g++.exe 构建活动文件"}]
}

 tasks.json

{"version": "2.0.0","tasks": [{"label": "C/C++: g++.exe 构建活动文件","type": "shell","command": "g++","args": ["-finput-charset=UTF-8","-fexec-charset=GBK","-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${workspaceFolder}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true}}]
}

 c_cpp_properties.json
C:\Users\Administrator> gcc -v -E -x c+ -b

{"configurations": [{"name": "Win32","includePath": ["${workspaceRoot}","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/include/**","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../include","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/x86_64-w64-mingw32","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/backward","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include-fixed"],"defines": ["_DEBUG","UNICODE","__GNUC__=6","__cdecl=__attribute__((__cdecl__))"],"intelliSenseMode": "msvc-x64","browse": {"limitSymbolsToIncludedHeaders": true,"databaseFilename": "","path": ["${workspaceRoot}","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/include/**","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../include","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/x86_64-w64-mingw32","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/backward","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include","F:/RedPanda-CPP-GCC11.2_Portable.2.3/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include-fixed"]}}],"version": 4
}

 百度搜索:  "launch.json" 中缺少配置“C/C++: g++.exe 生成和调试活动文件”
其给出的答案也不错!


这篇关于VScode配置launch+tasks[自己备用]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/912047

相关文章

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构