C配置教程

在Win10上配置vscode用于C++的开发

本文主要介绍如何利用vscode来使用微软的Visual C++编译器和调试器。本文将介绍如何配置vscode环境从而实现对C++语言文件的编译,调试和运行。基本内容来自官方文档,添加了一点自己的理解。

其实官方的文档已经非常详尽,这里只是记录以下自己的学习过程.

参考资料,官方vscode文档: Configure VS Code for Microsoft C++

准备条件

  1. 已经安装了 Visual Studio Code

  2. 安装C++扩展,如图,点击左侧插件选项后,搜索C++得到的第一个结果,由Microsoft出品。
    在这里插入图片描述

  3. 安装Microsoft Visual C++(MSVC)编译工具集,如果电脑上已经安装了Microsoft Visual Studio,那么已经包含了工具集,当然也可以不安转Microsoft Visual Studio的IDE工具,直接下载安装[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTYAAn9G-1650986676722)(https://visualstudio.microsoft.com/downloads#other)],选择自己的下载版本,如Build Tools for Visual Studio 2019,当然也可以下载使用最新的版本。

检查Microsoft Visual C++是否安装正确

为了在命令行使用MSVC,必须从Developer Command Prompt for Visual Studio(可以从搜索栏查找)中运行,因为包含了cl.exe,一般的命令行或者Powershell没有包含必要的INCLUDE文件。

如果由于某些原因,不能使用Developer Command Prompt for Visual Studio,也可以通过配置环境来实现,在介绍task.json一节会介绍。

创建 Hello World程序

对于C++程序,一般牵涉下面三个配置文件,我们会逐一介绍。

  • task.json 构建指令
  • launch.json 调试设置
  • c_cpp_properties.json 编译器路径以及智能推荐的设置

我们首先添加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;
}

利用task.json创建Build任务

使用Ctrl+shift+p,搜索Configure Default Build Task,选择C/C++: cl.exe文件,则会自动创建下面的tasks.json

调用configure Default build task来创建task.json,得到task.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"
		}
	]
}

比较重要的参数由type,说明任务类型cppbuildcommand,描述要运行的程序,也就是cl.exe,其是MSVC的命令行编辑工具。args是命令行的参数,这里对应的意义,选中当前编辑器的活动文件${file},编译并创建对应的可执行文件。可执行文件的名字为${fileDirname}\\${fileBasenameNoExtension}.exe,也就是与CPP同名文件,后缀名为exe

对应的参数意义为:针对选中的文件,编译,创建可执行文件,创建与源文件相同的同名文件,导致最后的helloworld.exe

这时理论上就可以编译生成可执行文件了(按照官方文档)),点击左下角的构建或者使用快捷键ctrl+shift+b
但是在我的电脑上却会报错,D:\workspace\cuda-learn\main.cpp(1): fatal error C1034: stdio.h: 不包括路径集,原因就如前文所讲,必须要使用命令行Developer Command Prompt for Visual Studio,而不能是普通的命令行或者powershell

这里我们通过配置文件tasks.json的方式来使得在vscode能够直接调用构建命令。新的tasks.json文件如下:

{
	"version": "2.0.0",
	"windows": {
	  "options": {
		"shell": {
		  "executable": "cmd.exe",
		  "args": [
			"/C",
			// The path to VsDevCmd.bat depends on the version of Visual Studio you have installed.
			"\"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools/VsDevCmd.bat\"",
			"&&"
		  ]
		}
	  }
	},
	"tasks": [
	  {
		"type": "shell",
		"label": "cl.exe build active file",
		"command": "cl.exe",
		"args": [
		  "/Zi",
		  "/EHsc",
		  "/Fe:",
		  "${fileDirname}\\${fileBasenameNoExtension}.exe",
		  "${file}"
		],
		"problemMatcher": ["$msCompile"],
		"group": {
		  "kind": "build",
		  "isDefault": true
		}
	  }
	]
  }

这里主要由两个变化:

  1. 添加了windows的配置,配置了使用的命令行参数,这里也就是添加了VsDevCmd.bat,具体的路径位置取决于安装路径,修改为实际路径即可;
  2. 将tasks中的type改为shell即可;

修改之后就能正常运行了。

修改task文件还可以获得更加定制的功能,比如将"${workspaceFolder}\\*.cpp" 替换 ${file}. 可以编译当前路径下的所有.cpp文件。

配置launch.json调试程序

同样,点击侧边栏的运行和调试,创建launch.json文件。添加内容如下

{
  "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"
    }
  ]
}

描述了相调试的程序program,配置完成后就可添加断点并启动调试.

C++相关配置

使用快捷键ctrl+shift+p,搜索C++,选择Edit configurations,则会自动创建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
}

错误

  1. 如果找不到cl.exe,就将该程序添加到路径.
  2. 如果报错no include path set,那么就是cl.exe添加了路径,但是由于不是从Developer Command Prompt for Visual Studio启动,所以找不到INCLUDE等配置,解决办法是配置tasks.json文件章节介绍的方法.其他的解决办法可以参考解决方案,但是我本人没有尝试,不知是否可行.

其他

windows使用GCC
linux 使用GCC
yaotuzhi/article/details/107144454),但是我本人没有尝试,不知是否可行.

其他

windows使用GCC
linux 使用GCC
GCC on windows subsystems

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值