如何在VSCode内编译运行C++?

作者: Yard | 来源:发表于2016-08-03 10:31 被阅读10712次

说到c++编译运行,大家第一个想到的应该是VS2015这种微软出的大型IDE,对于一些大型项目也确实应该使用VS这种大型的IDE,但是作为一个业余的爱好者,只是想使用c++来运行一些东西,比如一些算法问题,那么VS这种大型的IDE就显得鸡肋,还会消耗不必要的内存,这个时候VSCode这种可安装插件的编辑器就显得非常高效。

主要步骤

  • 安装VSCode
  • 在VSCode内安装c++插件
  • 安装g++编译、调试环境
  • 修改VSCode调试配置文件

安装VSCode

VSCode下载地址
按照步骤安装

在VSCode内安装c++插件

Ctrl+P之后输入

ext install c++
Paste_Image.png

安装左边第一个c/c++的插件(微软的官方插件)。
安装完成之后重启VSCode生效。

安装g++编译、调试环境

目前windows下调试仅支持 Cygwin 和 MinGW。这里使用的是MinGW.
Download mingw-get-setup.exe (86.5 kB)

按照流程安装,安装完之后打开界面:

Paste_Image.png
安装此处选中的模块。全选中之后按左上角Installationt->Apply Changes进行安装(最好翻墙)。
然后配置环境变量
别忘了这步就好(不懂配置的可以自己搜索,配环境变量应该是对程序员而言最见到那的事了)
有时候修改环境变量需要重启计算机

修改VSCode调试配置文件

用VSCode打开一个文件夹(因为VSCode会生成一个配置文件,所以必须在一个文件夹内运行)
新建一个a.cpp
写一个最简单的程序

Paste_Image.png

点击右边的蜘蛛,再点击左边调试栏上方的设置按钮,选择c++编译环境,将launch.json的文件内容替换成如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch (GDB)",                 // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg",                           // 配置类型,这里只能为cppdbg
            "request": "launch",                        // 请求配置类型,可以为launch(启动)或attach(附加)
            "launchOptionType": "Local",                // 调试器启动类型,这里只能为Local
            "targetArchitecture": "x86",                // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
            "program": "${file}.exe",                   // 将要进行调试的程序的路径
            "miDebuggerPath":"c:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
            "args": ["blackkitty",  "1221", "# #"],     // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false,                       // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${workspaceRoot}",                  // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
            "externalConsole": true,                    // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "preLaunchTask": "g++"                    // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
        }
    ]
}

注意miDebuggerPath要与MinGw的路径对应

Paste_Image.png
替换后保存,然后切换至a.cpp,按F5进行调试,此时会弹出一个信息框要求你配置任务运行程序,点击它~
选择任务运行程序,点击Others,跳出tasks.json的配置文件。
替换成如下代码
{
    "version": "0.1.0",
    "command": "g++",
    "args": ["-g","${file}","-o","${file}.exe"],    // 编译命令参数
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

保存一下,然后切换至a.cpp,再次按F5启动调试

Paste_Image.png

然后就可以设置断点调试了

相关文章

网友评论

  • iXiAo9:有偿能帮忙么?:joy:
    Yard:这是去年写的文章,vscode版本也升了好多了,api变更也非常多,并且最近也没有再使用C++写代码了,所以也懒得再去查阅这些api修改了,有任何问题最好直接去vscode的官方文档和github项目里的issue里查阅。
  • d4b6a8f1773f:spawn g++ ENOENT
    出现这个报错怎么解决
  • 925d86c4c85b:如何编译多个文件的情况?
    840bac27168d:用vscode目前没找到解决办法,我是写个bat脚本先调用gcc生成带调试信息的程序,再用vscode调试
  • houbo0601:你好,为什么我配置完,F5不能自己编译,必须我手动打开cmd 敲命令编译成exe才可以调试,我直接按F5不会弹出要求我配置任务运行程序,而是直接报说没有可以调试的exe
    houbo0601:解决了, "preLaunchTask": "g++",参数没有设置
  • 仰望星空的先生:cmd如何不闪退?不想在结尾处加个cin :scream:
    兔子泽:@100972 要么system("pause"),要么用shell启动你的程序
    仰望星空的先生:@Yard 我的意思是像sublime一样一个程序运行完了(不设置断点情境下),cmd不闪退 :smile:
    Yard:@100972 cmd会执行到你的断点之后停止,也就不会闪退,你是不是没有设置断点?

本文标题:如何在VSCode内编译运行C++?

本文链接:https://www.haomeiwen.com/subject/cusqsttx.html