vscode指定编译器的路径ruby vscode编译选项
  PD5PEUHobzP8 2023年11月26日 48 0


1、以下为tasks.jason编译的配置注释

{

    "version": "2.0.0",

    "tasks": [

        {

            "type": "cppbuild", //任务类型,除了cppbuild还有:process是vsc把预定义变量和转义解析后直接全部传给command;

            //shell相当于先打开shell再输入命令,所以args还会经过shell再解析一遍

            "label": "Compile", //任务名称,可以更改

            "command": "C:\\x86_64-8.1\\mingw64\\bin\\g++.exe", //编译命令,这里是g++,编译C的话换成gcc

            "args": [ //方括号里是传给g++命令的一系列参数,就是g++编译指令,一个逗号相当于一个空格

                "-g", //生成和调试有关的信息,可选

                "${file}", //指定要编译的是当前文件,可以替换为当前文件夹下的文件名

                "-o", //指定输出文件的路径和名称

                "${fileDirname}\\bin\\${fileBasenameNoExtension}.exe", //承接上一步的-o,指定输出文件的路径和名称,

                //这里的含义是在当前文件夹下的bin文件夹里生成和编译文件相同名字的exe

                "-std=c++17", // 可选,规定语言标准,可根据自己的需要进行修改,写c++要换成c++的语言标准,比如c++11

            ],

            "options": {

                "cwd": "C:\\x86_64-8.1\\mingw64\\bin"

            },

            "problemMatcher": "$gcc", //捕捉编译时编译器在终端里显示的报错信息,将其显示在vscode的‘问题’面板里

            "group": { //group表示‘组’,可以有很多的task,然后把他们放在一个‘组’里

                "kind": "build", //表示这一组任务类型是构建

                "isDefault": true //表示这个任务是当前这组任务中的默认任务

            },

            "presentation": { //执行这个任务时的一些其他设定,这里的终端是内部终端,在软件界面的下方,编辑的时候会出现

                "echo": true, //表示在执行任务时在终端要有输出

                "reveal": "always", //执行任务时是否跳转到终端面板,可以为always,silent,never

                "focus": false, //设为true后可以使执行task时焦点聚集在终端,但对编译来说,设为true没有意义,因为运行的时候才涉及到输入

                "panel": "new" //每次执行这个task时都新建一个终端面板,也可以设置为shared,共用一个面板,不过那样会出现‘任务将被终端重用’的提示,比较烦人

            },

            "detail": "compiler: C:\\x86_64-8.1\\mingw64\\bin\\g++.exe"

        }

    ]

}

2、以下为调试运行,launch.jason的配置

{

    "version": "0.1.0",

    "configurations": [

        {

            "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示

            "type": "cppdbg", // 配置类型,cppdbg对应cpptools提供的调试功能;可以认为此处只能是cppdbg

            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)

            "program": "${fileDirname}/bin/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径,注意和tasks.json生成的exe路径对应

            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可

            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,相当于在main上打断点

            "cwd": "${workspaceFolder}", // 调试程序时的工作目录,此为工作区文件夹;改成${fileDirname}可变为文件所在目录

            "environment": [], // 环境变量

            "externalConsole": true, // 使用单独的cmd窗口,与其它IDE一致;为false时使用内置终端

            "internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?

            "MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但我没试过lldb

            "miDebuggerPath": "C:\\x86_64-8.1\\mingw64\\bin\\gdb.exe", // 调试器路径,Windows下后缀不能省略,Linux下则不要

            "setupCommands": [

                { // 模板自带,好像可以更好地显示STL容器的内容

                    "description": "Enable pretty-printing for gdb",

                    "text": "-enable-pretty-printing",

                    "ignoreFailures": false

                }

            ],

            "preLaunchTask": "Compile" // 调试开始前执行的任务,一般为编译程序。与tasks.json的label相对应

        }

    ]

}

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月26日 0

暂无评论

推荐阅读
  8Tw5Riv1mGFK   19天前   30   0   0 C++
  BYaHC1OPAeY4   12天前   32   0   0 C++
  yZdUbUDB8h5t   15天前   22   0   0 C++
  oXKBKZoQY2lx   3天前   14   0   0 C++
PD5PEUHobzP8