• Visual Studio Code 构建C/C++开发环境


    转自:https://blog.csdn.net/lidong_12664196/article/details/68928136#visual-sutdio-code以及cc插件安装

        https://blog.csdn.net/my_wade/article/details/46941645

     

    Visual Sutdio Code以及C/C++插件安装
    安装VS Code:请打开官网 https://code.visualstudio.com/ 下载编辑器,并一路默认安装。
    安装cpptools插件(安装方式有两种,任选一种,一种是点击VS code的插件图标调出查找插件窗口然后搜索cpptools,另一种是Ctrl+p 调出VS code的shell,输入ext install cpptools),用于代码分析,编辑提示等等,具体可以参考介绍:https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools

    3、安装 code runner插件,可以动态运行选中的代码区块,详细介绍: 

    https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner 
    安装code runner插件

     

    4、安装 native debug 插件,用于gdb图形化调试你的C/C++程序,详细参考: 
    https://marketplace.visualstudio.com/items?itemName=webfreak.debug 

    5、重启VS code, 

    安装完以上插件后,重启VS code,让安装的插件生效。

    Visual Studio Code 和GCC共同调试C/C++程序

    安装GCC工具链

    1、安装C/C++ 的 GCC 工具链,windows上可以安装cygwin或者MinGW, linux/os x如果默认未安装,那安装也非常简单,根据使用的版本网上搜索相应的命令行即可。安装MinGW见最下。

    调试C/C++程序

    1. 在操作系统中新建一个工程目录,如 “hello”,然后启动vs code,打开这个空目录
    2. 用vs code 在hello目录新建一个源文件 hello.c: 

      文件内容如下:

      #include <stdio.h>
      int g_var = 0;
      void print_line(char *str)
      {
      if (str != NULL)
      printf("%s ", str);
      else
      printf("null string ");
      }
      int main (int argc, char **argv)
      {
      int l_var = 1;
      print_line("hello world!");
      printf("g_var = %d, l_var = %d. ", g_var, l_var);
      return 0;
      }
    3、添加头文件索引路径。在hello.c中,你会发现include头文件那一行下面有绿色的波浪线,代表vs code的cpptools插件找不到相应路径,将鼠标移到这一行点击。

    左边会出现一个提示的黄色小灯泡符号,点击它,然后点击“Add include path to settings”按钮, 将生成并打开一c_cpp_properties.json 文件,编辑这个json文件,添加c/c++头文件的路径进去: 

    这里cygwin的头文件路径为: “C:/cygwin/usr/include/*”,将它添加到”includePath”这个变量中。
    4. 设置编译构建环境。
    在vs code中点击hello.c回到hello.c文件,调用快捷键 Ctrl+Shift+B 构建可执行文件。
    此时vs code会报错,在vs code的顶栏显示“No task runner configured”,你只需要点击右边的蓝色按钮“Configure task runner”来生成编辑task.jason即可:

    点击后,在弹出的选择栏中选择”Others“: 

     

    选择后会创建并打开一个task.jason的配置文件, 修改其中的command 和 args变量并保存:

    "command": "gcc ",
    "args": ["-g", "${file}", "-o", "${workspaceRoot}/hello.exe"],  

    5. 构建hello.exe。 
    直接快捷键 Ctrl+Shift+B将hello.c编译构建为hello.exe, 
    这时你会发现vs code的左边栏中多了一个hello.exe文件。 

    运行和调试hello.exe。 
    快捷键 Ctrl+Shift+D 或者点击左边Debug按钮调出debug窗口。 

    按快捷键F5准备调试这个程序,此时会弹出选择debug的环境,选择 “GDB”即可。 

    之后会创建并打开launch.jason配置文件,修改一下“target”这个变量内容为”./hello.exe”:

     

    使用gdb调试,添加监控变量(在WATCH栏中添加变量名)和断点(鼠标在hello.c的左边栏点击显示红色即可添加断点),如: 

    快捷键F5运行调试,运行到断点后观察左边DEBUG栏目中显示的各种信息,然后 
    继续按绿色按钮(或快捷键F5)继续运行,如: 

    点击右下方DEBUG输出栏中的 ”DEBUG CONSOLE” 将看到程序运行时打印的信息: 

    7. 至此,一个简单的在WINDOWS上用VS Code编辑和调试C程序的例子完毕。

    Visual Studio Code编辑时的常用快捷键
    快捷键 作用
    F1或Ctrl+Shift+P 打开VS Code的命令Shell
    Ctrl+P 打开VS code文件/符号查询窗口,输入”>”可以进入F1同样的Shell
    Ctrl+Shift+O 查找符号,函数,属性
    Ctrl+G 跳转到某行
    Ctrl+[ 代码缩进
    Ctrl+] 代码往前移进
    Ctrl+F 查找文本
    Ctrl+H 查找替换
    Ctrl+Shift+F 整文件夹中查找
    Ctrl+ + 放大文本
    Ctrl+ - 缩小文本
    Ctrl+ Home 移动到文件头
    Ctrl+ End 移动到文件尾
    Ctrl+ Tab 在多个文件之间切换
    Ctrl+ / 注释/解注释鼠标选中的代码块
    Ctrl+ 切分当前窗口
    Ctrl+ N 新建文件
    F12 跳转到变量,函数,类型定义
    Alt+鼠标点击 连续选中多个文本,同时编辑
    Alt+F12 查找所有对当前变量,函数,类型的引用
    Alt+<-方向键 跳回到上一视图
    Alt+上下方向键 上下移动当前光标所在行
    Shift+Alt+上下方向键 向上/向下复制一行
    Ctrl+Enter 在当前行下边插入一行
    Ctrl+Shift+Enter 在当前行上方插入一行
    Alt+Shift+鼠标左键 列编辑

    Visual Studio Code官方资源
    编辑C++文件: http://code.visualstudio.com/docs/languages/cpp
    写VS Code扩展插件:https://code.visualstudio.com/docs/extensions/example-hello-world

    附 Mingw安装教程

    MinGW安装过程

    一. 下载

    MinGW官网下载地址:http://sourceforge.net/projects/mingw/

    二. 安装

    1. 双击下载好的压缩文件。

     

     

    2. 然后出现如下界面,点击install(安装)开始安装。

     

    • Version :GCC 版本,直接选最高;
    • Architecture :CPU 架构,系统如果为64位,则选择 x86_64;
    • Threads :API 模式,使用默认选项;
    • Exception :异常处理方式,seh 仅针对 64 位架构,sjlj 则兼容 32 位架构;
    • Build revision :修订版本,使用默认选项;
    • 安装过程中需要联网下载部分文件,由于网络问题安装失败的,可以 点这里下载 免安装版本。下载后直接解压在你想安装的文件夹。(那个压缩文件已经保存到haijing的2018考研群,随时可以下载的哟~)

      然后我们要在安装路径中找到 bin 文件夹,通常在 ${MinGW-w64安装位置}mingw64in ,以我的安装路径为例,bin 文件夹位于 D:AppMinGWmingw64in 。

     

    3.指定安装参数选择(安装目录,用户目录选择)后,点击Continue继续下一步。

     

     

    4.如下界面是下载和设置MinGW的安装配置

     

     

    5.上一步完成后,Continue处于可点击状态,点击它进行下一步

     

     

    6.出现如下界面

     

    2018.12.19后来插入的两张图片:这几天一直出错的原因之一是没有安装上第二张图片中的gdb,从而没有生成gdb.exe文件。出错之二是因为.json文件和.taskss文件配置不对.正确配置见下面。

     

    选择mingw32-gcc-ada、mingw32-gcc-fortran、mingw32-gcc-g++、mingw32-gcc-objc这四个。

     

     

    7.点击Installation下的Apply Changes(应用)继续下一步。

     

     

    8.出现如下界面,点击Apply(应用)继续下一步。

     

     

    9.出现如下界面,下载包(这一步需要的时间比较长,耐心等待)。

     

     

    10.当出现这段话时,表示对刚才的改变应用成功,此时可以点击Close关闭对话框。或者在还没有出现这段话时,选中对话框中的复选按钮(Close dialogue automatically,when activity is complete),意思是完成后自动关闭对话框。

     

     

    11.下面的界面也可以关闭了。

     

     

    三. 设置环境变量

    1.找到MinGW的安装目录下的bin目录(我的是C:MinGWin),并复制一下。

     

     

    2.右键计算机,选择属性,然后点击高级系统设置,再点击环境变量

      

     

     

    3.出现如下界面,双击Path

     

     

    4.将刚才复制的地址添加到变量值的末尾,

     

     

    四. 测试是否安装成功。

    1.点击确定结束。然后打开cmd

     

    2.输入gcc –v回车。

     

     

    成功了!!
    ---------------------
    作者:my_Wade
    来源:CSDN
    原文:https://blog.csdn.net/my_wade/article/details/46941645
    版权声明:本文为博主原创文章,转载请附上博文链接!

    关于正确配置c_cpp_properties.json文件、launch.json文件、tasks.json文件的方法以及另外一个完整的在vs code中配置c/c++环境的方法:

    C/C++ 是由 Microsoft 发布的支持 C/C++ 智能提示和调试等功能的插件,安装步骤如下:

    • 使用快捷键 Ctrl + Shift + X 呼出扩展面板
    • 在搜索框中输入:C/C++
    • 再安装由 Microsoft 提供的名为 C/C++ 插件。

    2. 安装 MinGW-w64 并配置好环境变量

    首先下载 MinGW-w64 点这里下载 MinGW-w64 。下载完成之后我们开始安装 MinGw-w64,安装路径可以自由定义,我这里安装路径为 D:AppMinGW 。安装时需要设置的安装选项如下:

    • Version :GCC 版本,直接选最高;
    • Architecture :CPU 架构,系统如果为64位,则选择 x86_64;
    • Threads :API 模式,使用默认选项;
    • Exception :异常处理方式,seh 仅针对 64 位架构,sjlj 则兼容 32 位架构;
    • Build revision :修订版本,使用默认选项;

    安装过程中需要联网下载部分文件,由于网络问题安装失败的,可以 点这里下载 免安装版本。下载后直接解压在你想安装的文件夹。

    然后我们要在安装路径中找到 bin 文件夹,通常在 ${MinGW-w64安装位置}mingw64in ,以我的安装路径为例,bin 文件夹位于 D:AppMinGWmingw64in 。

    接下来,我们将刚刚获取的 bin 文件夹的路径添加到系统环境变量。

    • 按 Win + R 键,打开运行窗口,,输入 sysdm.cpl 并回车;
    • 在弹出的 系统属性 窗口,选择 高级 选项卡;
    • 在 高级 选项卡找到 环境变量 按钮,单击 环境变量 按钮,打开 环境变量 窗口 ;
    • 在 环境变量 窗口的 系统变量 区域找到 Path 变量 ,双击 Path 出现 编辑环境变量 窗口;
    • 在 编辑环境变量 窗口点击 新建,在新建的这行输入我们刚刚获取的 bin 文件夹的路径,然后点确定。

    3. 测试环境变量是否配置正确

    在命令行输入 gcc --version,如果返回的是已安装的 gcc 的版本信息,那么环境变量就配置正确了。

    下面是在我的电脑上输入 gcc --version 的结果,可以看到我安装的版本为:gcc 7.3.0

    PS C:UsersJason> gcc --version
    gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 7.3.0
    Copyright (C) 2017 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    4. 创建和设置 C 语言开发工作区

    在你的计算机中选择一个合适的位置,作为你的 C 语言开发工作区。建议工作区所在路径仅由字母、数字、下划线组成,不要包含其他的符号。例如空格,空格符号常常作为命令行中命令和参数的间隔符,如果路径包含空格会导致编译时出错。我创建的工作区的路径为:D:StudyCWorkSpace

    由于 Windows 中文版命令行输出字符是 GB2312 编码的,而 VS Code 工作区默认是 UTF-8 ,这会导致你编写的 C 代码编译后在命令行执行并查看结果时中文会显示乱码,所以我们要单独针对工作区进行设置字符编码,保证程序输出的字符也采用跟命令行一致的 GB2312 编码,步骤如下:

    • 使用 VS Code 打开你创建的工作区;
    • 在 VS Code 左下角的设置按钮进设置,再点击 用户设置 旁边的 工作区设置 ;
    • 在 工作区设置 中添加 "files.encoding":"gb2312"

    5. 编写你的第一个 C 语言程序

    在工作区新建一个 C 语言源文件命名为 hello.c ,输入以下内容:

    #include <stdio.h>
    #include <windows.h>
    int main()
    {
        printf("hello world!/n");
        system("pause");
    }

    6. 配置导入的头文件参数 c_cpp_properties.json

    在编写完毕并保存之后,你可能会看到 #include 这句下面会有绿色波浪线,这是由于编译器没办法找到你所使用的头文件的所在位置。将光标移动到该行,行号左边会出现 黄色小灯泡 ,点击会出现一个提示按钮:Add include path to setting,继续点击该提示,则会在工作区 .vscode 下生成 c_cpp_properties.json 文件。将文件修改成下面内容:

    {
        "configurations": [{
            "name": "MinGW",
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "D:/App/MinGW/mingw64/bin/x86_64-w64-mingw32-gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "includePath": [
                // 下面路径中的 D:/App/MinGw 部分需要替换成你的 MinGw-w64 安装路径
                "${workspaceFolder}/**",
                "C:/MinGW/include",  //需要改的地方
                "C:/MinGW/mingw64/lib/gcc/minggw32/6.3.0/include/c++",
                "C:/MinGW/mingw64/lib/gcc/mingw32/6.3.0/include/c++/tr1"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "__GNUC__=7",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "browse": {
                "path": [
                    // 下面路径中的 D:/App/MinGw 部分需要替换成你的 MinGw-w64 安装路径
                    "${workspaceFolder}/**",
                     "C:/MinGW/include",  //需要改的地方
                    "C:/MinGW/lib/gcc/mingw32/6.3.0/include/c++",
                    "C:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/tr1"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        }],
        "version": 4
    }

    留意带注释部分的内容,需要将路径修改成你自己的安装路径哦。

    7. 配置调试程序 launch.json

    打开已经编写好的 hello.c ,然后按 F5 调试。因为是第一次调试,系统会弹出 选择环境 面板,这里选择 C++(GDB/LLDB)

    选择运行环境后,VS Code 会在工作区 .vscode 文件夹下创建 luanch.json 模板文件并打开,将文件内容清空,复制下面的内容到文件中并保存:

    {
        "version": "0.2.0",
        "configurations": [{
            // 配置 VS Code 调试行为:
            "name": "GDB Debug", // 设置在启动配置下拉菜单中显示调试配置的名称。
            "preLaunchTask": "Compile", // 调试会话开始前要运行的任务。
            "type": "cppdbg", // 设置要使用的基础调试器。使用 GDB 或 LLDB 时必须是 cppdbg 。
            "request": "launch", // 设置启动程序还是附加到已经运行的实例。启动或附加 ( launch | attach ).
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 调试器将启动或附加的可执行文件的完整路径。
            "externalConsole": true, // 设置是否显示外部控制台。
            "logging": { // 用于确定应该将哪些类型的消息记录到调试控制台。
                "exceptions": true, // 是否应将异常消息记录到调试控制台。默认为真。
                "moduleLoad": false, // 是否应将模块加载事件记录到调试控制台。默认为真。
                "programOutput": true, // 是否应将程序输出记录到调试控制台的可选标志。默认为真。
                "engineLogging": false, // 是否应将诊断引擎日志记录到调试控制台。默认为假。
                "trace": false, // 是否将诊断适配器命令跟踪记录到调试控制台。默认为假。
                "traceResponse": false // 是否将诊断适配器命令和响应跟踪记录到调试控制台。默认为假。
            },
            // 配置目标应用程序:
            "args": [], // 设置调试时传递给程序的命令行参数。
            "cwd": "${workspaceFolder}", // 设置调试器启动的应用程序的工作目录。
            "environment": [], // 设置调试时添加到程序环境中的环境变量,例如: [ { "name": "squid", "value": "clam" } ]。
            // 自定义 GDB 或者 LLDB:
            "windows": {
                "MIMode": "gdb", // 指定 VS Code 连接的调试器,必须为 gdb 或者 lldb。
                "miDebuggerPath": "C:/MinGW/bin/gdb.exe" // 调试器的路径,修改为你的安装路径
            },
            "miDebuggerArgs": "", // 传递给调试器的附加参数
            "stopAtEntry": false, // 设置调试器是否停止在目标的入口(附加时忽略)。默认值为 false。
            "setupCommands": [{ // 执行下面的命令数组以设置 GDB 或 LLDB
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing", // 鼠标悬停查看变量的值,需要启用 pretty-printing 。
                "ignoreFailures": true // 忽略失败的命令,默认为 false 。
            }]
        }]
    }

    留意 luanch.json 中的注释内容,记得把 "miDebuggerPath" 参数修改成你自己安装位置里的 gdb.exe

    gdb.exe 位于 {MinGW-w64安装位置}mingw64in 下面。

    8. 配置调试前执行的任务 task.json

    再按一次 F5 ,会弹出“找不到任务”的提示窗口,点击 配置任务 按钮,如下图所示:

    然后在弹出的命令面板选择 使用模板创建 task.json 文件 ,如下图所示:

    继续选择 Others 运行任意外部命令的示例 ,如下图所示:

     

    完成以上步骤之后,会在工作区的 .vscode 目录下生成 tasks.json 文件,并自动打开 task.json 文件。

     

    接下来我们将 task.json 文件内容清空,复制下面的内容到文件中并保存:

    {
        // 有关 tasks.json 格式的参考文档:https://go.microsoft.com/fwlink/?LinkId=733558 。
        "version": "2.0.0",
        "tasks": [{
            "label": "Compile",
            "type": "shell", // { shell | process }
            // 适用于 Windows 的配置:
            "windows": {
                "command": "gcc",
                "args": [
                    "-g",
                    ""${file}"",
                    "-o",
                    ""${fileDirname}\${fileBasenameNoExtension}.exe""
                    // 设置编译后的可执行文件的字符集为 GB2312:
                    // "-fexec-charset", "GB2312"
                    // 直接设置命令行字符集为 utf-8:
                    // chcp 65001
                ]
            },
            // 定义此任务属于的执行组:
            "group": {
                "kind": "build", // { build | test }
                "isDefault": true // { true | false }
            },
            // 定义如何在用户界面中处理任务输出:
            "presentation": {
                // 控制是否显示运行此任务的面板。默认值为 "always":
                // - always:    总是在此任务执行时显示终端。
                // - never:     不要在此任务执行时显示终端。
                // - silent:    仅在任务没有关联问题匹配程序且在执行时发生错误时显示终端
                "reveal": "silent",
                // 控制面板是否获取焦点。默认值为 "false":
                "focus": false,
                // 控制是否将执行的命令显示到面板中。默认值为“true”:
                "echo": false,
                // 控制是否在任务间共享面板。同一个任务使用相同面板还是每次运行时新创建一个面板:
                // - shared:     终端被共享,其他任务运行的输出被添加到同一个终端。
                // - dedicated:  执行同一个任务,则使用同一个终端,执行不同任务,则使用不同终端。
                // - new:        任务的每次执行都使用一个新的终端。
                "panel": "dedicated"
            },
            // 使用问题匹配器处理任务输出:
            "problemMatcher": {
                // 代码内问题的所有者为 cpp 语言服务。
                "owner": "cpp",
                // 定义应如何解释问题面板中报告的文件名
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                // 在输出中匹配问题的实际模式。
                "pattern": {
                    // The regular expression.
                    "regexp": "^(.*):(\d+):(\d+):\s+(warning|error):\s+(.*)$",
                    // 第一个匹配组匹配文件的相对文件名:
                    "file": 1,
                    // 第二个匹配组匹配问题出现的行:
                    "line": 2,
                    // 第三个匹配组匹配问题出现的列:
                    "column": 3,
                    // 第四个匹配组匹配问题的严重性,如果忽略,所有问题都被捕获为错误:
                    "severity": 4,
                    // 第五个匹配组匹配消息:
                    "message": 5
                }
            }
        }]
    }

    9. 完成

    到这里,C 开发环境就已经配置完毕。接下来我们在 hello.c 的编辑窗口按 F5 运行下,看下效果。

     

    如果你还想再创建其他的 C 语言开发工作区,我们只需要新建一个文件夹,再把现在已有工作区目录下的 .vscode 文件夹复制到新建的文件夹即可。

     2018.12.19 haijing in HZ 

    马上去上中特了。。。还有五分钟上课

     

  • 相关阅读:
    HDUOJ---Can you solve this equation?
    HDUOJ---A + B Again
    C++知识整理(进制)
    位运算的方法,大结
    位运算的方法,小结
    C++知识整理(在此感谢大牛的整理)
    nyoj---快速查找素数
    HDUOJ----湫湫系列故事——减肥记I
    《道德经》:十条简洁有用的人生建议
    Nginx的几个常用配置和技巧
  • 原文地址:https://www.cnblogs.com/YiYA-blog/p/10134480.html
Copyright © 2020-2023  润新知