如何配置VSCode运行C/C++程序?

1.下载mingw64并配置环境变量

题主下载的为mingw64_6.4.0
将安装目录下的bin目录配置进环境变量
例如

D:\Coding_Program\ENVIRONMENT\mingw\mingw64_6.4.0\bin

2.安装插件

安装C/C++插件

3.配置launch.json和task.json文件

配置成功后新建一个cpp文件,并用VSCode打开该目录。
点击左方的运行和调试(Ctrl+Shift+D)按钮。
在未配置过时,会显示“创建launch.json文件”字样,点击,选择
C++(GDB/LLDB)
,再选择g++ build and debug active file;
之后会自动弹出**.vscode/launch.json**文件。
我们对其进行更改与配置

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            /*
            "program"项是项目启动的路径,你可以自定义启动路径,这样避免cpp和exe在统一文件夹下显得臃肿
            "program"项需要与tasks.json中的"args"下的""-o","后面的部分保持一致
            ${workspaceFolder}表示VSCode打开的文件夹
            ${fileDirname}表示当前文件的目录名
            ${fileBasenameNoExtension}表示当前文件不带后缀的名字
            */
            "program": "${workspaceFolder}\\exe\\${fileBasenameNoExtension}.exe", //这一条是说明
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "internalConsoleOptions": "neverOpen",
            // "externalConsole": true则为外部控制台
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\Coding_Program\\ENVIRONMENT\\mingw\\mingw64_6.4.0\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            /*
            "preLaunchTask"项需要与tasks.json的label保持一致,这一点很重要
            */
            "preLaunchTask": "C/C++: g++.exe"
        }
    ]
}

之后按**(Ctrl+Shift+P)搜索Task进入Tasks:Configuration Task或者F5按提示进行
会自动创建
.vscode/tasks.json**
对其进行修改和配置

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe",
            "command": "D:\\Coding_Program\\ENVIRONMENT\\mingw\\mingw64_6.4.0\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                // 注意这里修改了编译路径
                "${workspaceFolder}\\exe\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "D:\\Coding_Program\\ENVIRONMENT\\mingw\\mingw64_6.4.0\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "编译器: D:\\Coding_Program\\ENVIRONMENT\\mingw\\mingw64_6.4.0\\bin\\g++.exe"
        }
    ],
    "version": "2.0.0"
}

谈谈个人理解,编译的过程是,首先tasks.json会创建exe,根据类似"gcc a.cpp -o a.exe"的命令,也就是里面提到的args项,这里指明了生成的exe路径。
之后,launch.json的program项需要锁定工作路径,找到刚刚生成的exe便可以继续编译,因此这两者的路径需要一致。
此外,只有将launch.json的"preLaunchTask"项需要与tasks.json的label保持一致,才能将两个配时文件联系起来,否则只走launch.json,默认本路径生成exe,并报错找不到指定路径下的exe

4.测试

再进入cpp文件,按F5即可运行或者设断点进行调试。

此外,注意我的项目结构。

成功将exe放到了自定义的文件夹下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值