在本文开始前,我们将对一些名词做出解释,然后给出官方文档翻译版(原文是英文的),并且做出一些解释/
概念:
编辑器是软件程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4(汉书)……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器和视频编辑器等。
当然在这里我们主要讲的是代码编辑器,一个好的编辑器可以节省开发时间,提高工作效率,它们都能提供非常方便易用的开发环境。你可以用它们来编写代码,查看源文件和文档等,简化你的工作。
编译器所做的就是进行三种语言(机器语言、编译语言和高级语言)的互相转换。
大多数情况下,编译是从更高级的语言(高级语言、汇编语言)编译成低级语言(汇编语言、机器语言)。
另一种情况是,从他人的可执行程序(低级语言)编译成高级语言,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。这个过程叫做反向编译。
可以看到,编辑器是用来让程序员优雅的敲代码,编译器是用来将这些高级语言或汇编语言编译成计算机能直接识别并运行的机器语言。如果我们每次编辑完源程序都要在命令行依托编译器进行函数、模块的链接和编译的话岂不是很麻烦,于是集成开发环境的出现很快的完善了开发效率问题。
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
由于每个 IDE 的针对性不同,承载的编译器不同,不同的语言有时需要不同的IDE
环境配置VS代码的说明,针对不同的系统共有四种方法
(1)使用C ++和WSL
(2)使用C ++和Mingw-w64
(3)在macOS上开始使用C ++和Clang / LLVM
(4)使用C ++ MSVC
红色字体或者引文部分是我给出的解释
(一)写在前面,是安装的概览,需要用到什么东西;
在本教程中,您将在Windows上配置Visual Studio代码以在Mingw-w64中使用g ++编译器和gdb调试器。Mingw-w64是一个在Windows上运行的Linux开发环境。
您将在本教程中创建的配置适用于单个工作区(文件夹层次结构),但您可以轻松地将配置文件复制到其他工作区,并仅使用一些修改即可使用它们。
配置VS Code后,您将编译和调试一个简单的程序,以熟悉VS Code用户界面。完成本教程后,您将准备好创建和配置自己的工作区,并浏览VS Code文档以获取有关其许多功能的更多信息。本教程不会教您GCC或Mingw-w64或C ++语言。对于这些科目,网上有很多好的资源。
如果您有任何问题,请随时在VS Code文档存储库中提交本教程的问题。
先决条件
要成功完成本教程,您必须执行以下操作:
(1)安装Visual Studio代码。
(2)安装VS Code的C ++扩展。
(3)将Mingw-w64安装到路径中没有空格的文件夹中(换句话说,不是C:/ Program Files /的默认位置)。在本教程中,我们假设它安装在C:\Mingw-w64。
(4)安装一个shell程序,如Bash。如果您已经安装了Git for Windows,那么您已经拥有了一个扩展可以发现并用于其集成终端的Bash shell。如果您没有安装的Git为Windows,那么你可以安装bash.exe作为一部分MSYS2。
(5)在Windows搜索框中,键入“path”,然后从结果列表中选择“编辑系统环境变量”。
(6)将路径添加到Bash shell和mingw-w64 bin文件夹到Windows PATH环境变量。扩展将在打开它时将此环境变量传递给Bash shell。
配置要使用的Bash控制台
如果您没有安装Windows Subsystem for Linux(WSL),则可以跳到下一部分。
WSL安装的Bash shell可能与您打算用于Mingw-w64的任何shell冲突。默认情况下,VS Code集成终端首先查找WSL Bash控制台。它位于“C:/Windows/System32/bash.exe”(对于64位VS代码)或“C:/Windows/sysnative/bash.exe”(对于32位VS代码)。您不能将WSL Bash控制台与Mingw-w64一起使用,因为它将Windows文件系统视为位于/ mnt /文件夹下,这会导致各种问题。因此,您需要确保VS Code知道您打算将哪个控制台用于此项目。
从VS Code主菜单中,打开View> Command Palette并开始键入“Settings”。
从建议列表中,选择“首选项:打开设置(JSON)”。例如,如果您安装了Git for Windows,则可以通过添加以下行来使用它的shell:
“terminal.integrated.shell.windows”: “C:\Program Files\Git\bin\bash.exe”
您可以通过在此设置中指定其完整路径来使用任何其他shell。
(二)
在Windows命令提示符下,创建一个名为的空文件夹projects,您可以在其中放置所有VS Code项目。然后创建一个名为的子文件夹helloworld,导航到该文件夹,并通过输入以下命令code在该文件夹(.)中打开VS Code():
mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .
该代码。命令在当前工作文件夹中打开VS Code,它将成为您的工作区。我们的任务是向工作区添加三个文件,告诉VS Code如何编译和调试我们的程序。VS Code会将这些文件放在.vscode它将为我们创建的子文件夹中:
c_cpp_properties.json 指定编译器路径
tasks.json 指定如何构建可执行文件
launch.json 指定调试器设置
配置编译器路径
按Ctrl + Shift + P打开命令调色板。它看起来像这样:
命令调色板
开始键入“C / C ++”,然后从建议列表中选择“ 编辑配置 ”。VS Code创建一个名为的文件c_cpp_properties.json,并使用一些默认设置填充它。
找到该compilerPath设置并粘贴到该bin文件夹的路径中。如果您在C:\ mingw-w64下安装了Mingw-w64版本8.1.0,则路径如下所示:C:\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin\g++.exe。
该compilerPath设置是配置中最重要的设置。扩展使用它来推断C ++标准库头文件的路径。当扩展知道在哪里找到这些文件时,它可以在您编写代码时为您提供许多有用的信息。此信息称为IntelliSense,您将在本教程后面看到一些示例。
设置intelliSenseMode为gcc-x64。此设置有助于IntelliSense功能为GCC提供正确的信息。
您可能会注意到includePath默认文件中还有一个设置。如果程序包含不在工作区或标准库路径中的头文件,则只需设置此项。实际上,如果您不需要,我们建议您完全删除该设置。在本教程中不需要它,因此它从下面的代码中删除。您的完整c_cpp_properties.json文件应如下所示(但请务必使用您特定的Mingw-w64路径):
{
"configurations": [
{
"name": "Win32",
"defines": [
"_DEBUG",
"UNICODE"
],
"compilerPath": "C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/g++.exe",
"intelliSenseMode": "gcc-x64",
"browse": {
"path": [
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
],
"version": 4
}
解释: 创建工作区,其实就创建文件夹,然后就在VS code中打开
以下程序是Windows的命令行,在相当于Linux终端
mkdir projects
cd projects
mkdir helloworld
cd helloworld
code . // 在vs code打开
命令调试版 ,其实就是我们ctrl + shift + P 打开的这个搜索框
另外请注意,关于这篇教程上的顺序是不能颠倒的,在打开VS code 配置之前,一定要先打开文件目录,才能依次打开json格式文件,按步骤依次修改。
(三)
接下来,创建一个tasks.json文件来告诉VS Code如何构建(编译)程序。此任务将调用WSL上的g ++编译器以基于源代码创建可执行文件。
从主菜单中,选择“ 视图”>“命令选项板”,然后键入“任务”并选择“任务” :添加默认构建任务,然后选择“ 其他”。VS Code创建一个最小tasks.json文件并在编辑器中打开它。
继续使用以下代码段替换整个文件内容:
{
"version": "2.0.0",
"tasks": [
{
"label": "build hello world",
"type": "shell",
"command": "g++",
"args": [
"-g",
"-o",
"helloworld",
"helloworld.cpp"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
该command设置指定要运行的程序; 在这种情况下是g ++。exe。该args数组指定将传递给g ++的命令行参数。必须按编译器预期的顺序指定这些参数。
label您将在VS Code Command Palette中看到该值; 你可以随意命名。
对象中的"isDefault": true值group指定在按Ctrl + Shift + B时将运行此任务。这家酒店仅为方便起见; 如果将其设置为false,则必须从“运行构建任务”下的“命令调色板”菜单中运行它。
解释:
上面的是关于tasks.json 的一些配置,其实可以类比与Linux 终端 的gcc 调试命令
main 函数的原型为 main(int argc,char ** argv)
argc 为传入的参数个数,argv 为传入的参数数组
(四)
接下来,我们将配置VS Code以在按F5时启动GCC调试器(gdb.exe)。请注意,程序名称helloworld.exe与您指定的名称相匹配tasks.json。您需要调整您的miDebuggerPath值以与Mingw-w64安装的路径完全匹配。
默认情况下,C ++扩展将断点添加到第一行main。该stopAtEntry值设置为true使调试器在该断点上停止。false如果您想忽略它,可以将其设置为。
您的完整launch.json文件应如下所示:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/helloworld.exe",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
(五)
在主VS Code菜单中,单击File> New File并为其命名helloworld.cpp。
粘贴此源代码:
#include
#include
#include
using namespace std;
int main()
{
vector<string> msg {"Hello", "C++", "World", "from", "VS Code!"};
for (const string& word : msg)
{
cout << word << " ";
}
cout << endl;
}
现在按Ctrl + S保存文件。请注意您刚刚编辑的所有文件如何显示在VS代码左侧面板的“ 文件资源管理器”视图中:
文件管理器
该面板还用于源代码控制,调试,搜索和替换文本以及管理扩展。左侧的按钮控制这些视图。我们将在本教程后面看一下Debug View。您可以在VS Code文档中找到有关其他视图的更多信息。
探索IntelliSense
原文链接
在VScode 中使用 MinGW
我写的相关教程:
Vistual Studio 简明使用教程(一):
Vistual Studio 简明使用教程(二):语言设置
Visual Studio Code简明使用教程(四):运行,调试C/C++程序
Visual Studio Code简明使用教程(五):运行,调试C/C++程序
对于VS Code的C/C++代码配置,我阅读了以下文章,也一并分享给大家:
在VS code 中使用C++和WSL
Windows子系统安装
以下是我的一些演示
命令在当前工作文件夹中打开VS Code,它将成为您的工作区。我们的任务是向工作区添加三个文件,告诉VS Code 如何编译和调试我们的程序。VS Code会将这些文件放在.vscode它将为我们创建的子文件夹中:
c_cpp_properties.json 指定编译器路径
tasks.json 指定如何构建可执行文件
launch.json 指定调试器设置
默认添加到用户主目录
附:
【1】 关于WSL简介
Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。
它是由微软与Canonical公司合作开发,目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。
WSL提供了一个微软开发的Linux兼容内核接口(不包含Linux代码),来自Ubuntu的用户模式二进制文件在其上运行。
该子系统不能运行所有Linux软件,例如那些图形用户界面,以及那些需要未实现的Linux内核服务的软件。不过,这可以用在外部X服务器上运行的图形X Window系统缓解。
WSL包含内容:
WSL是一些组件的集合,允许原生的Linux ELF64二进制文件跑在Windows上。它同时包括了用户态和内核态组件,主要包含以下部分:
用户态会话管理服务处理Linux实例的生命周期
Pico provider drivers (lxss.sys, lxcore.sys)“翻译”系统调用,以模拟Linux内核
Pico 进程管理原生的用户态Linux(比如/bin/bash)
奇迹就发生于用户态的Linux二进制文件和Windows内核组件之间。通过将未经修改的Linux二进制文件放置于Pico进程中,我们把Linux系统调用直接导入Windows内核中。
lxss.sys, lxcore.sys驱动将Linux系统调用翻译为NT APIs,来模拟Linux内核。
【2】
注意 : C / C ++扩展不包括C ++编译器或调试器。您需要安装这些工具或使用计算机上已安装的工具。流行的C ++编译器是用于Windows的mingw-w64,用于macOS的XCode的 Clang 和用于Linux的GCC。确保您的编译器可执行文件位于您的平台路径中,以便扩展程序可以找到它。该扩展还支持Windows的Windows子系统。