VSCODE-Tutorials-通过Microsoft C++配置VSCODE

VSCODE-Tutorials-通过Microsoft C++配置VSCODE

官方网址

在本教程中,你将使用来自Microsoft Visual C++的编译器和调试器配置 Visual Studio Code 以在Windows上运行创建运行的程序

配置 VS Code 后,您将在 VS Code 中编译和调试一个简单的 Hello World 程序。本教程不会教您 GCC、GDB、Mingw-w64 或 C++ 语言。对于这些主题,Web 上有许多很好的资源可用。

准备工作

Visual Studio CodeVisual Studio官网

VSCODE的安装配置参考先前博客,VS2017的安装选择如下(这里以VS2017为例),然后一路下一步就可以:

在这里插入图片描述

检查Microsoft C++安装

通过Windows的开始目录输入“command prompt”就可以打开command prompt for VS 2017,具体的名字取决于你安装的Visual Studio 版本,但应该输入command prompt 就能找到。

在这里插入图片描述

打开prompt后输入cl来验证Windows是否正确安装了C++编译器,如果有cl.exe的话,你将会看到基本用法和版本的相关信息。此处prompt打开的路径是默认的Community作为的起始目录,如果你的工程不在该目录下,需要通过C:\usrs\{your usrname}导入到你的新项目文件中。依次输入以下命令打开VSCODE:

D: //取决于你的工程文件在哪
cd D:\Users\***\Desktop\project //你的工程文件所在目录
cl //验证C++编译器是否安装
code . //此命令用来在该工程下打开VSCODE

在这里插入图片描述

创建Hello World

创建工作区

在验证C++编译器之前创建了一个名为projects的空文件夹,您可以在其中放置所有 VS Code 项目。然后创建一个名为 helloworld 的子文件夹,右击projects文件夹点击 通过Code打开。在学习本教程时,您将看到.vscode在工作区的文件夹中创建了三个文件:

  • tasks.json (构建说明)
  • launch.json (调试器设置)
  • c_cpp_properties.json (编译器路径和 IntelliSense 设置)

点击文件 > 将工作区另存为 > 打开projects文件夹 > 保存,操作完成后就将projects设为了工作区,可以该工作区下创建多个工作项目。

在这里插入图片描述

关于直接创建文件夹和创建工作区的差别这里不进行叙述

添加源码

新建helloworld文件夹并在文件资源管理器标题栏中,选择新建文件按钮并将文件命名为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保存后,显示如下:

在这里插入图片描述

创建helloworld.cpp

接下来,创建一个tasks.json文件来告诉VSCODE(编辑器)如何建立(编译)程序,该文件主要用来调用Microsoft C++编译器去创建源码的可执行文件。操作步骤是:终端(Terminal )> 配置默认生成任务(Configure Default Build Task),在下拉列表中显示的是给C++编译器的各类预定义目标(task)。选择C/C++:cl.exe生成活动文件(C/C++:cl.exe build active file),

在这里插入图片描述

这将创建一个tasks.json文件在.vscode文件夹中并在编辑器中打开它。你的新tasks.json文件应该类似于下面的 JSON:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: cl.exe 生成活动文件",
			"command": "cl.exe",
			"args": [
				"/Zi",
				"/EHsc",
				"/nologo",
				"/Fe:",
				"${fileDirname}\\${fileBasenameNoExtension}.exe",
				"${file}"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$msCompile"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "编译器: cl.exe"
		}
	]
}

在这里插入图片描述

其中参数说明如下:

command:设置指定程序运行(在这里就是指的cl.exe )。

args:数组形式。设置一些传递给cl.exe的命令行参数,这些参数必须按一定的顺序提供给编译器。

${file}:提供给C++编译器编译的的活动文件

/Fe:创造生成文件的可执行文件在当前路径(${fileDirname}),并且使用相同名字的.exe扩展(${fileBasenameNoExtension}.exe),这里就是helloworld.exe。

lable:在任务中可以看到的值(可自定义命名)

problemMatcher:用于在编译器的输出中查找错误和警告。对cl.exe来说,msCompile是最好的结果解析器。

isDefault:true的设定仅仅是为了方便起见,它是指定您按Ctrl+Shift+B时运行此任务,当为false时,仍可以使用终端(Terminal)> 运行生成任务 (Run Build Task)从终端菜单运行它。

运行生成任务
  1. 返回 helloworld.cpp. 你需要运行 helloworld.cpp并且需要运行生成文件.
  2. tasks.json定义了运行生成任务的命令, 按住Ctrl+Shift+B 或者使用终端(Terminal)> 运行生成任务 (Run Build Task)。
  3. 当任务开始后,集成终端面板将会在源代码下方显示,任务完成后,终端将会显示编译器的的输出,说明编译是否成功,成功地C++编译如下:

在这里插入图片描述

使用+键创建一个新终端,这是一个以project文件夹为工作目录的新终端,进入helloworld运行ls可以看到可执行文件helloworld.exe以及各种C++的输出和调试文件(helloworld.obj, helloworld.pdb

在这里插入图片描述

进一步输入.\helloworld.exe可以看到 .cpp文件中要输出的内容。

调试helloworld.cpp

接下来按下F5来配置VSCODE编辑器加载Microsoft C++调试器来创建launch.json文件,以此来调试源码。

​ 1.从主目录下选择运行(Run)> 添加配置(Add Configuration)并进一步选择C++ (Windows)

​ 2.你将会从下拉选项中看到调试配置,选择cl.exe - 生成和调试活动文件(cl.exe build and debug active file.)

在这里插入图片描述

VSCODE创建一个launch.sjon文件,在编辑器中打开它

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "cl.exe - 生成和调试活动文件",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "console": "externalTerminal",
            "preLaunchTask": "C/C++: cl.exe 生成活动文件"
        }
    ]
}

在这里插入图片描述

参数说明如下:

program:指定需要调试的程序,

${fileDirname}是表示活动(调试)文件夹

${fileBasenameNoExtension}.exe:是表示活动(调试)文件名

​ 举例说明则是如果活动(调试)文件是helloworld.cpp,那么${fileBasenameNoExtension}.exe则表示helloworld.exe。

stopAtEntry:false表示默认不对main()设置断点,true表示默认对main()设置断点。当为true时,运行(run) > 启动调试表现如下:

在这里插入图片描述

C/C++配置

设置 c_cpp_properties.json 可以控制更多的C/C++ extension,这个json文件主要用来改变设置:编译器路径(path to the compiler)、包含路径(include paths)以及C标准(C++ standard;默认是C++17)等。这里有两种设置方式,将分别介绍。

第一种方式(C/C++ configuration UI

按住Ctrl+Shift+P后,在下拉选项中输入:C/C++可以选择C/C++:编辑配置(UI)(C/C++: Edit Configurations (UI))调出Microsoft C/C++扩展进行设置。

在这里插入图片描述

当你对其中的参数设置改变时,VSCODE将会将这些改变写入c_cpp_properties.json文件,这里我们改变配置名称(Configuration name)为Win32;下拉编译路径(Compiler path )为cl.exe编译器。IntelliSense模式(IntelliSense mode)为Windows-MSVC-x64

在这里插入图片描述

全部设置完成后点击设置中c_cpp_propertiese.json文件,则会在.vscode文件夹下保存该文件。打开该文件显示如下内容:

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

同时也可以添加工作空间之外的头文件到includePath路径下,如opencv等。

第二种方式(C/C++ configuration JSON

按住Ctrl+Shift+P后,在下拉选项中输入:C/C++可以选择C/C++:编辑配置(JSON)(C/C++: Edit Configurations (JSON))直接在.vscode文件夹下创建c_cpp_properties.json。

在这里插入图片描述

这种方式则需要对其中的配置参数进行更改,将namecompilerPathintelliSenseMode进行更改,以及自行决定是否添加cppStandard参数值:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe",
            "intelliSenseMode": "windows-msvc-x64",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值