VSCode统一生成exe文件位置到output文件夹(无插件版)
创作时间:
作者:
@小白创作中心
VSCode统一生成exe文件位置到output文件夹(无插件版)
引用
CSDN
1.
https://blog.csdn.net/2301_79273066/article/details/143117047
在使用VSCode开发C++程序时,每次编译生成的exe文件都会默认存放在当前文件夹下,这可能会导致文件管理混乱,影响工作效率。本文将介绍一种无需额外插件,仅通过配置VSCode的tasks.json
和launch.json
文件,即可将所有exe文件统一存放到指定的output文件夹中的方法。
问题描述
在VSCode中运行或编译C++程序时,默认会将生成的exe文件存放在当前文件夹下,如下图所示:
长期以往,这会严重影响文件查找效率和项目整洁度。虽然可以通过安装Code Runner插件来解决这个问题,但这种方法存在以下缺点:
- 需要额外下载插件
- 配置难以随项目迁移
- 未来修改时可能忘记具体设置方式
本文将介绍一种更简单直接的方法,通过配置.vscode/tasks.json
和.vscode/settings.json
文件来实现相同效果,同时保证配置的可迁移性和直观性。
问题解决
设置tasks.json进行构建
该文件用于定义和配置任务。在这里我们设置build任务,将exe文件生成到指定的output文件夹下。
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\Program Files\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\output\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
设置launch.json进行调试
该文件定义了调试器如何启动应用程序。由于build时将exe生成到了output目录下,因此需要在program和cwd中添加output路径。
{
"configurations": [
{
"name": "C/C++: g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\output\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}\\output",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
],
"version": "2.0.0"
}
文件放置和运行
将上述两个配置文件放置到项目的.vscode
目录下,项目结构如下:
此时再次点击运行,便可以发现所有exe都已经放置到了output文件夹中:
最后
该方法应该是最为简单直接的方式,但是有一个无法避免的弊端就是不允许路径或者文件名称上有中文存在。否则会出现错误。该问题目前还没有合适的解决方法。
热门推荐
爷爷过户给未成年孙子需要什么手续
如何通过定投基金实现稳定策略并降低风险?这种投资方式的风险控制方法有哪些?
做烤瓷牙补牙风险有哪些
以夷制夷真的有效?许景澄一手促成以俄制日,结果差点丢了东北
腰椎间盘突出手术治疗:别让恐惧阻碍康复之路
阿拉伯糖的功效和作用
陈平为何获称“毒士”?——生平经历探析
男子拆快递遭"暴雨梨花针"袭击!眼睛里取出几十根玻璃纤维!
LPR大幅下调:深度解析其对经济稳增长与民生改善的双重影响
全球首款渐冻症基因疗法创新药在国内获批上市
黄金技术面重大破位!俄乌停火传重要消息 金价大涨近18美元 如何交易黄金?
松鼠桂鱼:姑苏名菜现代革新,走入寻常宴席中
探讨模糊理论在决策中的应用与意义
LVDS高速接口的原理、系统设计、PCB设计介绍
推动普法工作走深走实 创新普法模式多元多样
房子过户给子女哪种方式最省钱
汽车悬架的类型结构分类形式和优缺点
80 岁以上老人坐飞机有哪些要求?
服务器内存与台式机内存有何不同?
菠萝的营养价值和食用好处
“拜仁化”的巴萨凶相毕露,弗里克依旧是惨案缔造者
非遗的时代之变:传承人,既是教育者,也是新业态创造者
ELO机制和MMR机制有何区别?英雄联盟手游的艰难选择
生辰八字断命不准探讨八字预测的准确性与局限性
寿命不长的男人,通常有3个“共性”,占了一个,也尽量改正
丁禹兮创内娱杂志销售新纪录:10分钟破34.5万本,销售额超1888万
《星空》Xbox Series S支持60帧 画面性能增强
选择适合的不锈钢板厚度指南
十二生肖与财运:如何理解与运用生肖运势
全球首个商用海底数据中心:从构想到现实的创新实践