vscode入门之C++编译、调试与运行

本文详细介绍了如何在Visual Studio Code(VSCode)中配置和使用g++进行C++代码的调试。首先,通过官网下载并安装VSCode。接着,创建项目文件夹并编写cpp代码。为了调试,需要安装g++编译器。然后,通过tasks.json配置编译参数,用于生成可执行文件,同时设置launch.json以调试模式运行。在完成这两个配置文件后,通过Ctrl+Shift+B编译代码,成功则会生成exe文件,最后通过F5启动调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vscode安装无需多言,官网下载傻瓜安装即可。本文主要介绍如何使用vscode进行调试。

一、准备工作——安装插件:

(还有别的吗...忘记了😅。。。)

 

二、编写cpp代码:

Tips:在vscode中,一个文件夹就是一个项目,所以你可以先建一个“vscode_workspace”,

然后建项目文件夹:

然后就可以建文件写代码了(C++Test就是你的项目)

   

 

三、调试过程和原理

编译工具

我使用的工具是g++😀,所以说,请先安装配置g++

题外话

如果我们直接运行cpp文件:

会发现生成了一个test.exe文件:

这个文件其实是build产生的文件(理论上来说应该先点"complile",再点"build"。不过在vccode中它会自动先给你compile再build)

而你运行的其实就是这个exe文件

Tips:关于compile和build的区别

参考:funnyfan

"compile"是“编译”的意思,“build”是“链接”的意思。

compile的作用是对你的代码进行语法检查,将你的文本程序语言转化成计算机可以运行的“01010....”形式的二进制文件。

build的作用是将你在程序中调用到的类库融合到你的程序中,比如你用到了printf()函数,那么内部实现该函数的类库代码就会添加到你的程序中。

compile过程生成“.obj”文件或".o"文件,这个和编译器有关,vc++中是“.obj”文件。

build过程生成“.exe”文件。这个可以直接运行

理论上来说应该先点"complile",再点"build"。不过在vc++中直接点“build”它会自动先给你compile再build。

原理

原理分两步走:

一、vscode通过tasks.json文件配置一些参数,这个文件一运行就相当于build(编译+build),会生成一个exe文件;

二、然后通过launch.json文件以debug方式来运行上面生成的exe文件。

步骤

第一步,建立tasks.json文件:

首先敲完测试代码后,按:ctrl+shift+P,搜索:configure task

然后选择:

之后会生成并打开一个tasks.json的文件,把里面的东西全删了,换上下面这个:

{

    "version": "2.0.0",

    "tasks": [

        {

            "type": "cppbuild",

            "label": "Compile",

            "command": "E:\\ProgramFiles\\minGW\\mingw64\\bin\\g++.exe",

            "args": [

                "-g",

                "${workspaceFolder}\\test.cpp",//这个表示你要编译的文件

                "-o",

                "${workspaceFolder}\\${fileBasenameNoExtension}.exe"//这个表示输出的文件名

                //tips: ${fileDirname} 表示的是当前文件所在的文件夹路径,不包括此文件夹名(C++Test)

                //workspaceFolder 表示当前项目文件夹的路径(C++Test)

                //${fileBasenameNoExtension} 表示当前打开的文件的名字:tasks

                //${file} 表示当前正在编辑的文件的绝对路径+文件名+后缀

            ],

            "options": {

                "cwd": "E:\\ProgramFiles\\minGW\\mingw64\\bin"

            },

            "problemMatcher": [

                "$gcc"

            ],

            "group": "build",

            "detail": "compiler: E:\\ProgramFiles\\minGW\\mingw64\\bin\\g++.exe"

        }

    ]

}

说明:

如何测试这个文件写对了?按ctrl+shift+B或者:

如果生成了一个exe文件的话,

表示OK!

 

第二步,建立launch.json文件:

最后,点击:

出现这个表示成功:

 

说明:

建议事先了解一下像workspaceFolder,fileBasename这样的东西(网上搜索就有),说一下2个特别的:

第一个:fileBasenameNoExtension

准确的说,指的是当前打开的文件的文件名【在工作区中显示的文件的文件名】,注意:比如tasks.json里面有一个这个,并不意味着这个值就是“tasks”!

事实上,前面我们在tasks.json写完后测试了一下(ctrl+shift+B),生成的是tasks.exe,这是因为:

如果你这样:

第二个:fileDirname

非常奇怪,按道理因该包括当前文件所在的文件夹名的,然后并没有:

为何呢?难道说vscode只是把这个.vscode文件夹当成是一个辅助的东西,所以直接忽略了?

(PS:.vscode文件夹是建tasks.json文件时自动创建的)

完。

 

顺便贴一下我自己的launch.json(图个方便而已):

{
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "调试",
            "type": "cppdbg",//这里指定以debug模式运行!
            "request": "launch",
            "program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "E:\\ProgramFiles\\minGW\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Compile"
        }
    ]
}

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值