问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

VSCode统一生成exe文件位置到output文件夹(无插件版)

创作时间:
作者:
@小白创作中心

VSCode统一生成exe文件位置到output文件夹(无插件版)

引用
CSDN
1.
https://blog.csdn.net/2301_79273066/article/details/143117047

在使用VSCode开发C++程序时,每次编译生成的exe文件都会默认存放在当前文件夹下,这可能会导致文件管理混乱,影响工作效率。本文将介绍一种无需额外插件,仅通过配置VSCode的tasks.jsonlaunch.json文件,即可将所有exe文件统一存放到指定的output文件夹中的方法。

问题描述

在VSCode中运行或编译C++程序时,默认会将生成的exe文件存放在当前文件夹下,如下图所示:

长期以往,这会严重影响文件查找效率和项目整洁度。虽然可以通过安装Code Runner插件来解决这个问题,但这种方法存在以下缺点:

  1. 需要额外下载插件
  2. 配置难以随项目迁移
  3. 未来修改时可能忘记具体设置方式

本文将介绍一种更简单直接的方法,通过配置.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文件夹中:

最后

该方法应该是最为简单直接的方式,但是有一个无法避免的弊端就是不允许路径或者文件名称上有中文存在。否则会出现错误。该问题目前还没有合适的解决方法。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号