美文网首页
VS Code 配置 Microsoft C++ 工作环境

VS Code 配置 Microsoft C++ 工作环境

作者: 无名山人 | 来源:发表于2020-02-22 13:32 被阅读0次

    在本教程中, 您将 VS Code 配置为在Windows 上使用 Microsoft Visual C++ 编译器和调试器. 配置VS Code 之后, 将在VS Code 中编译和调试一个简单的 Hello World 程序.

    先决条件

    为成功完成本次配置过程, 您必须执行以下操作:

    1. 安装 VS Code.

    2. 安装 C/C++ extension for VS Code. 您可以通过在"扩展"视图中搜索."c++"来安装c/c++扩展(Ctrl + Shift + X).


      cpp-extension.png
    3. 安装 Microsoft Visual C++(MSVC)编译工具链.

      如果您使用的是Visual Studio的最新版本,请从Windows的“开始”菜单中打开"Visual Studio安装程序",并验证是否选中了C ++工作负载。如果尚未安装,请选中该复选框,然后在安装程序中单击“修改”按钮.
      您也可以仅安装C ++ Build Tools,而无需完整安装Visual Studio IDE.在 "Visual Studio 下载" 页面中,向下滚动,直到在 "所有下载" 部分下看到"Visual Studio工具",然后选择"Build Tools for Visual Studio"的下载.

    build-tools-for-vs.png

    这将启动Visual Studio安装程序,该程序将弹出一个对话框,显示可用的Visual Studio Build Tools工作负载. 检查C ++生成工具的工作量,然后选择"安装".

    cpp-build-tools.png

    检查您的Microsoft Visual C++ 安装

    要从命令行或VS Code使用MSVC,必须从Visual Studio的开发人员命令提示符运行. 普通的Shell(例如PowerShell,Bash或Windows命令提示符)没有设置必要的路径环境变量.
    启动 Visual Studio 开发人员命令提示符, 从开始菜单下的快速搜索区域, 搜索 “vs 2017” 或 "开发人员" 就可以找到开发人员命令提示符.

    findvscmd.png

    您可以通过键入“ cl”来测试您是否正确安装了C ++编译器cl.exe,并且应该看到版权消息以及其版本和基本用法说明.

    vs2017_develper.png

    "code”命令在当前工作文件夹中打开VS Code,这将成为您的“工作区”。在阅读本教程的过程中,您将看到在工作区的.vscode文件夹中创建的三个文件.

    • Task.json (构建说明)
    • Launch.json (调试器设置)
    • C_cpp_properties.json ( 编译器路径和IntelliSense设置)

    添加源代码文件

    在文件资源管理器标题栏中,选择"新建文件"按钮,并将文件命名为helloworld.cpp.

    new-file-button.png

    增加 helloworld.cpp 源代码如下:

    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    
    int main()
    {
        vector<string> msg { "Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
        for (const string& word :msg)
        {
            cout << word << "";
            cout << endl;
        }
    }
    

    现在按 Ctrl + S 保存文件. 请注意,刚添加的文件如何显示在VS Code侧栏中的文件资源管理器视图(Ctrl + Shift + E)中.

    file-explorer.png

    在左边的工具栏中, 还有其他的一些功能, 如搜索、源码控制, 和调试. 在后面的章节中您就可以看到调试视图. 您可以在VS Code 用户界面文档 中找到有关其他视图的更多信息.

    探索智能感知

    在新的helloworld.cpp文件中,将鼠标悬停在矢量或字符串上以查看类型信息。在声明msg变量之后,开始键入msg. 就像调用成员函数时一样. 您应该立即看到一个显示所有成员函数的完成列表,以及一个显示msg对象的类型信息的窗口.

    msg-intellisense.png

    您可以按Tab键插入选定的成员. 然后,当您添加左括号时,您将看到有关该函数所需的任何参数的信息.

    编译helloworld.cpp

    接下来,您将创建一个task.json文件,以告诉VS Code如何构建(编译)程序.该任务将调用Microsoft C ++编译器以基于源代码创建可执行文件.

    从主菜单中,选择“终端配置默认生成任务”. 在下拉列表中,将显示任务下拉列表,其中列出了C ++编译器的各种预定义构建任务.选择cl.exe构建活动文件,它将构建当前在编辑器中显示(活动)的文件.

    build-active-file.png

    这将在.vscode文件夹中创建一个task.json文件,并在编辑器中将其打开.

    您的新task.json文件应类似于以下JSON

    {
      "version": "2.0.0",
      "tasks": [
        {
          "type": "shell",
          "label": "cl.exe build active file",
          "command": "cl.exe",
          "args": [
            "/Zi",
            "/EHsc",
            "/Fe:",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "${file}"
          ],
          "problemMatcher": ["$gcc"],
          "group": {
            "kind": "build",
            "isDefault": true
          }
        }
      ]
    }
    

    command 设置指定要运行的程序, 在这种情况下,它就是"cl.exe". Args数组指定将传递给cl.exe的命令行参数. 必须按照编译器期望的顺序指定这些参数. 该任务告诉C ++编译器获取活动文件($ {file}),对其进行编译,然后在当前目录($ {fileDirname})中创建一个与活动文件同名的可执行文件(/ Fe:switch). 但带有.exe扩展名($ {fileBasenameNoExtension} .exe),对于我们的示例将生成helloworld.exe.

    标签值就是您将在任务列表中看到的值;您可以随意命名.
    组对象中的“ isDefault”:true值指定当您按Ctrl + Shift + B时将运行此任务。此属性仅出于方便起见;如果将其设置为false,您仍然可以使用“任务:运行构建任务”从“终端”菜单中运行它.

    运行构建

    1. 返回helloworld.cpp, 准备构建 helloworld.cpp.
    2. 按 Ctrl + Shift + B 或从终端主菜单中选择 "任务:运行构建任务".
    3. 任务启动时, 可以看到 "集成终端" 面板出现在源代码编辑器下方. 任务完成后, 终端将显示编译器的输出, 指示构建成狗还是失败. 对于成功的 C++ 构建, 输出看起来像这样.
    build-output-in-terminal_2.png
    1. 使用+按钮创建一个新终端,您将拥有一个新终端(运行PowerShell),其中helloworld文件夹为工作目录. 运行ls,现在您应该看到可执行文件helloworld.exe以及各种中间C ++输出和调试文件(helloworld.obj,helloworld.pdb).
    helloworld-in-terminal.png
    1. 您可以通过输入 .\helloworld.exe 在终端中运行helloworld.

    修改task.json

    您可以使用"$ {workspaceFolder} \ *.cpp"之类的参数而不是$ {file}来修改task.json以构建多个C ++文件。这将在当前文件夹中生成所有.cpp文件。您也可以通过将"$ {fileDirname} \ $ {fileBasenameNoExtension} .exe"替换为硬编码的文件名(例如" $ {workspaceFolder}\myProgram.exe")来修改输出文件名.

    调试helloworld.cpp

    接下来,您将创建一个launch.json文件,以配置VS Code以在您按F5调试程序时启动Microsoft C ++调试器.从主菜单中,选择"调试添加配置...",然后选择" C ++(Windows)".

    build-and-debug-active-file.png

    VS Code创建一个launch.json文件,在编辑器中将其打开,然后生成并运行 "helloworld" .

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "cl.exe build and debug active file",
          "type": "cppvsdbg",
          "request": "launch",
          "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
          "args": [],
          "stopAtEntry": false,
          "cwd": "${workspaceFolder}",
          "environment": [],
          "externalConsole": false,
          "preLaunchTask": "cl.exe build active file"
        }
      ]
    }
    
    

    程序设置指定要调试的程序. 在这里,它被设置为活动文件文件夹$ {fileDirname}和活动文件名,扩展名为.exe $ {fileBasenameNoExtension} .exe,如果helloworld.cpp是活动文件,则文件名为helloworld.exe.
    默认情况下,C ++扩展不会在源代码中添加任何断点,并且stopAtEntry值设置为false。将stopAtEntry值更改为true,以使调试器在启动调试时在main方法上停止.

    开始调试会话

    1. 返回 helloworld.cpp, 使其成为活动文件.
    2. 按F5或从主菜单中选择"调试开始调试".在开始浏览源代码之前,让我们花一点时间注意用户界面中的一些更改.
    • 集成终端出现在源代码编辑器的底部.在"调试输出"选项卡中,您将看到指示调试器已启动并正在运行的输出.

    • 编辑器突出显示main方法中的第一条语句. 这是C ++扩展自动为您设置的断点.

      stopAtEntry.png
    • 左侧的 "调试" 视图显示调试信息.您将在本教程的后面看到一个示例.

    • 在代码编辑器的顶部, 将显示一个调试控制面板. 可以按住窗口边缘并移动倒合适的地方.

    逐步执行代码

    现在,您准备开始逐步执行代码.

    单击或按调试控制面板中的“跳过”图标,直到突出显示for(const string&word:msg)语句.

    step-over-button.png

    从左至右按钮功能分别为 Continue 、Step Over 、Step Into、Step Out 、Restart 、Stop 调试功能.
    这几个功能的作用是 继续执行、跳出当前块、进入当前块、重启调试器、停止调试器.

    观察变量

    有时,您可能希望在程序执行时跟踪变量的值. 您可以通过在变量上设置监视来做到这一点.

    1. 在观察窗口中, 通过按 "+" 按钮,输入待观察的变量名, 当代码运行到变量名所在的块时, 可以观察该值.
    watch-window.png
    1. 当断点停留在某个块时, 可以在鼠标移动倒特定的变量上, 可以快速的观察该变量的值.
    mouse-hover.png

    C/C++ 配置

    如果您想进一步控制C / C ++扩展,可以创建一个c_cpp_properties.json文件,该文件可让您更改设置,例如编译器的路径,包含路径,C ++标准(默认为C ++ 17).
    您可以通过运行命令C / C ++:从命令面板(Ctrl + Shift + P)编辑配置(UI)来查看C / C ++配置UI.

    command-palette.png

    这将打开“ C / C ++配置”页面. 当您在此处进行更改时,VS Code会将其写入.vscode文件夹中名为c_cpp_properties.json的文件中.

    configurations-ui.png

    Visual Studio Code将这些设置放在.vscode\c_cpp_properties.json中. 如果直接打开该文件,则它应如下所示.

    {
      "configurations": [
        {
          "name": "Win32",
          "includePath": ["${workspaceFolder}/**"],
          "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
          "windowsSdkVersion": "10.0.18362.0",
          "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/cl.exe",
          "cStandard": "c11",
          "cppStandard": "c++17",
          "intelliSenseMode": "msvc-x64"
        }
      ],
      "version": 4
    }
    

    仅当程序包含不在工作空间或标准库路径中的头文件时,才需要添加到"包含路径数组"设置中.

    重用C++配置

    VS Code现在已配置为使用Microsoft C ++编译器. 该配置适用于当前工作空间。要重用配置,只需将JSON文件复制到新项目文件夹(工作区)中的.vscode文件夹,然后根据需要更改源文件和可执行文件的名称.

    相关文章

      网友评论

          本文标题:VS Code 配置 Microsoft C++ 工作环境

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