vscode打开⾃动提⽰_VSCode官⽅⽂档翻译:配合MinGW使
⽤GCC
本⽂使⽤ Zhihu On VSCode 创作并发布
写在前⾯:这个教程是VS Code的官⽅⽂档,⽐较详细的介绍了如何在VS Code上⾯编写和调试C/C++程序。虽然国内平台,例如CSDN也有这⽅⾯的内容,但是不够详细,我有时碰到了问题也⽆法解决,这次翻译这篇⽂章,也让我涨了不少知识,解决了我以前不太懂的问题。和⼀些国内⼤学使⽤的C++开发⼯具(dev-cpp、code::blocks)相⽐,VS Code给出的提⽰更全,可以让初学者没有必要把时间花在检查单词拼写这样的⼩问题上,所以⽤VS Code来编写代码量不⼤的作业是个不错的选择。
⽂章中使⽤的图⽚都是原⽂提供的,⼩标题都是官⽅⽂档给出的。
在这个教程中,你将会配置VSCode来使⽤来⾃mingw-w64的GCC C++编译器(g++)与GDB debugger以创建运⾏在Windows上的程序。
在你配置好VS Code以后,你将会在VS Code上编译并调试⼀个简单的"Hello World"程序。这个教程不会涉及GCC、GDB、Mingw-w64或者C++语⾔相关的内容。⽹络上有许多关于这些内容的资源和教程。
如果你有任何疑问,欢迎在VS Code⽂档库中提出问题。
准备⼯作
为了顺利完成这个教程,你必须先按照以下步骤操作:
1. 安装VS Code。
2. 安装VS Code的C/C++插件。你可以通过在插件视图(Ctrl+Shift+X)中搜索“C++”来安装这个插件。
C/C++ extension
3. 通过SourceForge⽹站安装Mingw-w64。点击Mingw-w64来下载Windows版本的Mingw-w64安装器。
1.
1. 启动安装器。
x86_64,然后点击“下⼀步”(Next)。
Architecture)选项中选择x86_64
2. 在架构(Architecture
3. 再次点击“下⼀步”(Next)以使⽤默认的安装路径并安装MinGW。
4. 把Mingw-w64安装⽬录下⾯的bin⽂件夹按照以下⽅法,加⼊Windows的PATH环境变量中:
1.
1. 在Windows搜索框中,输⼊“设置”以打开你的Windows设置。
2. 搜索“编辑账户的环境变量”。
3. 选择“Path”变量,然后点击“编辑”。
4. 选择“新建”,然后将上述的Mingw-w64的路径加⼊到系统环境变量中。Mingw-w64的实际路径取决于你安装的Mingw-w64
的版本和你选择安装的路径。如果你使⽤上述设置来安装Mingw-w64,那么加⼊这个路径:C:Program Filesmingw-
w64x86_64-8.1.0-posix-seh-rt_v6-rev0mingw64bin。
5. 点击确定
确定以更新环境变量。你需要重启任何已经打开的终端窗⼝,来使新的环境变量设置⽣效。
检查MinGW的安装
为了检查你的Mingw-w64是否成功安装并且可⽤,打开⼀个新的终端窗⼝并输⼊:
g++ --version
gdb --version
如果你没有看到预计的输出或者提⽰g++和gdb不是可⽤的命令,检查你的安装(控制⾯板->程序),并且确保你上⾯配置的环境变量和Mingw-w64的编译器位置⼀致。
(译者注:在任何⼀个⽂件夹按住Shift并且点击右键,菜单上就会多出“在此处打开命令窗⼝/PowerShel
l窗⼝”⼀项,这样你就可以像在Linux下那样原地启动终端了)
创建⼀个Hello World程序
在Windows命令提⽰符下,创建⼀个空⽂件夹projects,你可以在这个⽂件夹中存放你所有的VS Code项⽬。然后在这个⽬录下⾯创建⼀个⼦⽬录helloworld,打开它,然后通过如下的命令在VS Code中打开它:
mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .
"code ."命令将会在当前的⼯作⽂件夹中启动VS Code,这⾥也将成为你的“⼯作区”(workspace)。当你跟随教程进⾏操作的时候,你将会看到三个创建在.vscode⽂件夹中的⽂件:
tasks.json(⽣成命令)
launch.json(调试器设置)
c_cpp_properties.json(编译器路径和IntelliSense设置)
添加源代码⽂件
新建⽂件按钮并把这个⽂件命名为helloworld.cpp。
在内置⽂件浏览器的标题栏中,选择新建⽂件
New File title bar button
加⼊"hello world"代码
现在把下⾯的代码粘贴到VS Code中:
#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+Shift+E)中显⽰的:
现在按Ctrl+S来保存这个⽂件。请留意你刚刚加⼊的⽂件是如何在VS Code侧边栏的⽂件浏览器
File Explorer
通过“⽂件->⾃动保存”菜单,你也可以打开⾃动保存功能来⾃动保存你的⽂件更改。
运⾏。稍后的教程中你将会看到运⾏
运⾏视图。你可以在⽤户界⾯⽂档中
搜索、源代码管理
左侧的活动栏可以让你打开不同的视图,例如搜索
源代码管理和运⾏
到更多有关其他视图的信息。
注意:当你保存或打开⼀个C++⽂件的时候,你可能会看到⼀个来⾃C/C++扩展的提⽰,内容是关于测试版可⽤的消息,允许你测 注意
清理消息)
试新特性和修复。你可以通过点击 X忽略这个提⽰。( 清理消息
探索IntelliSense
在你新创建的helloworld.cpp⽂件中,将⿏标悬停到vector或者string上来浏览类型信息。在声明了msg变量以后,开始输⼊msg.,就像调⽤成员函数那样。你应该会⽴即看到⼀个补全列表,上⾯显⽰了所有的成员函数,和⼀个显⽰msg类型信息的窗⼝:
Statement completion IntelliSense
你可以按Tab键来插⼊选择的成员;然后,当你键⼊左括号的时候,你将看到有关函数所需的所有参数的信息。
⽣成helloworld.cpp
下⼀步,你将会创建⼀个tasks.json⽂件以告诉VS Code如何⽣成(编译)这个程序。这个任务将会在g++编译器基于源代码创建可执⾏⽂件的时候触发。
g++.exe build 终端->配置默认⽣成任务,在这个显⽰了⼏个预先定义的C++编译器的⽣成任务的下拉菜单中,选择g++.exe build 通过主菜单,选择终端->配置默认⽣成任务
active file,这个任务将会⽣成当前显⽰在编辑器中(活动)的⽂件。
active file
Tasks C++ build dropdown
这个操作将会在.vscode⽂件夹中创建⼀个tasks.json,并在编辑器中打开它。
新的tasks.json⽂件应该和下⾯的JSON⽂件类似:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++.exe build active file",
"command": "C:Program Filesmingw-w64x86_64-8.1.0-posix-seh-rt_v6-rev0mingw64bing++.exe",
"args": ["-g", "${file}", "-o", "${fileDirname}${fileBasenameNoExtension}.exe"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
command设定指定了需要运⾏的程序,在这个例⼦⾥⾯是g++。args数组制定了需要传递给g++的命令⾏。这些参数必须按照编译器要求的顺序指定。上⾯创建的任务告诉g++选择当前活动的⽂件(${file}),编译它,然后在当前的⽂件夹创建⼀个⽤和活动⽂件相同的名字命名的可执⾏⽂件(${fileDirname}),但是拥有.exe的扩展名(${fileBasenameNoExtension}.exe),在这个例⼦中最后会⽣
成。
注意:你可以在变量参考中了解到更多有关于 task.json的信息。
lable值是你在任务列表上⾯会看到的内容,你可以把它重命名为任何你想要的名字。
位于group类⾥⾯的"isDefault":true值指定这个任务将会在你按下Ctrl+Shift+B时运⾏。这个属性只是为了⽅便,如果你将其设置为false,你任务:运⾏⽣成任务运⾏它。
依然可以从终端菜单中通过任务:运⾏⽣成任务
启动⽣成程序
1. 返回helloworld.cpp。在前⾯教程中配置的任务将会⽣成当前活动的⽂件,现在你想要⽣成helloworld.cpp。
运⾏⽣成任务。
2. 为了运⾏在tasks.json中定义的任务,按下Ctrl+Shift+B或者从终端菜单中选择运⾏⽣成任务
3. 当这个任务启动的时候,你将会看到编辑器下⽅显⽰的综合终端⾯板。在这个任务完成以后,这个终端会显⽰来⾃编译器的输出,提
⽰这次⽣成成功或是失败。对于⼀次成功的g++编译,输出将会和这个类似:
G++ build output in terminal
4. 点击+键创建⼀个新的终端,然后你将会看到⼀个⽬录在helloworld⽂件夹下的终端。运⾏dir命令,你现在应该看到可执⾏⽂
件。
Hello World in PowerShell terminal
5. 你现在可以在终端中运⾏helloworld,通过输⼊(如果你使⽤的是PowerShell,输⼊.)。
注意:最初启动PowerShell的时候,你可能需要按⼏次 Enter才能看到PowerShell的提⽰,这个问题会在Windows的新版本中被修复。
修改tasks.json
你可以修改tasks.json来⽣成多个C++⽂件,使⽤参数"${workspaceFolder}*.cpp"⽽不是${file}。这将⽣成当前⽂件夹中所有的.cpp⽂件。你也可以修改输出的⽂件名,通过把"${fileDirname}${fileBasenameNoExtension}.exe"替换成⼀个固定的⽂件名(例如"${")
调试helloworld.cpp
下⼀步,你将创建launch.json以配置VS Code,使得当你按下F5就可以启动GDB调试器。
运⾏->添加配置...然后选择C++(GDB/LLDB)。
1. 从主菜单中,选择运⾏->添加配置...然后选择C++(GDB/LLDB)
>powershell创建目录
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论