参考:
https://www.cnblogs.com/foxer-z/p/12520904.htmlhttps://segmentfault.com/a/1190000020155987
VS Code是一个文本编辑器,类似于editplus,在上面有很多插件,在无法使用正版Visual Studio的情况下是一个比较常见的C++开发替代选择,但请注意,他并不能完全等同于IDE。
1. 安装VS Code进入到VS Code的官网: https://code.visualstudio.com/,选择deb格式的文件下载安装即可.
2. 安装cpptools插件打开VS Code后,按crtl + shift + P调出命令行,然后搜索C++,安装微软自己开发的那个:
同样可以安装C++ Intellisense插件,用于自动补全代码:
执行命令:
sudo apt install gcc
安装完成以后在terminal窗口运行gcc -v 确认是否安装成功;
4. 安装GNU编译工具和GDB调试工具命令如下:
sudo apt-get update sudo apt-get install build-essential gdb
通过定位g++和gdb来核实安装是否成功。如果文件名没有在whereis命令中返回,试试再次运行更新命令。
whereis g++ whereis gdb5.添加配置
在终端里切换到你的helloworld工程目录,用code .打开VS Code:
cd $HOME/projects/helloworld code .
code . 命令会在当前目录打开VS code,这个目录就是你的“工作空间”。随着教程的进行,你将看到在工作目录的.vscode目录中会创建两个文件:
tasks.json(编译说明) launch.json(调试设置)
注意:VS Code只能打开源码所在的文件夹,而不是直接打开源码文件,否则下面将无法进行!
- 添加源代码文件:
在文件管理标题栏上选择 新文件 按钮,创建一个 helloworld.cpp 文件:
添加helloworld源代码:
#include#include #include using namespace std; int main() { vector 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)中,注意你刚添加的文件是怎样显示的。
你也可以打开自动保存功能,自动保存文件的改动,在 文件 主菜单中点击 自动保存 。
到这里,你如果参考网上的教程,可能会感觉到有点怪异,因为我们以前使用IDE的时候,直接找两个按钮或者菜单,编译、运行/调试,就可以跑起来了,但那是IDE。
VS code 只是一个文本编辑器,在VS code里面,需要通过插件来完成编译、运行的流程。所以需要额外增加两个配置文件来完成这个事情,这两个配置文件要放在一个叫.vscode目录下面,你可以在你的workspace目录下创建这个目录。
- 编译helloworld.cpp:
接下来,你要创建 tasks.json 文件,告诉VS code怎样编译程序。
在Cpp文件下使用快捷键ctrl+shift+P打开搜索框,输入>tasks,选择配置任务,使用模板文件创建tasks.json,选择others:
将上述tasks.json文件改为:
{
// See https://go.microsoft.com/fwlink/?linkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"isShellCommand": true,
"args": ["-g", "${file}", "-std=c++11", "-o", "${filebasenameNoExtension}.out"],
"showOutput": "always"
}
]
}
command选项指明要运行的程序,这个例子中是g++。 args数组指明要传给g++的命令行参数,这些参数的顺序必须符合编译器要求。label选项的值会在任务列表中显示,你可以任性地修改它。
这项工作是调用g++编译目标文件(
f
i
l
e
)
,
并
在
当
前
目
录
(
{file}),并在当前目录(
file),并在当前目录({fileDirname})创建一个与目标文件同名的可执行文件,此教程中的例子创建helloworld.out文件。
在终端主菜单中选择运行任务,build --> gcc ,运行定义在tasks.json文件的编译任务:
任务开始时,源代码编辑框下面会出现终端面板。编译完成后,终端会输出编译是否成功的相关信息。编译成功的样子像这样:
执行ls命令可以看到可执行文件helloworld.out,在终端输入./helloworld.out运行helloworld:
- 调试helloworld.cpp:
接下来,你要创建一个launch.json文件来配置VS code,让它在你按F5时调用GDB调试程序。
在主菜单选择运行 > 添加配置… 然后选择 C++(GDB/LLDB)。
将上述launch.json文件改为:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${filebasenameNoExtension}.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
program选项指定要调试的程序。这里设置的是helloworld.cpp生成的目标文件helloworld.out。
这里默认,C++扩展不会源代码中添加任何断点,stopAtEntry的值为false。将stopAtEntry设为true会在开始调试时停在main函数位置。
6. 开始调试会话返回helloworld.cpp,这是目前的目标文件。
按F5或主菜单选择运行 > 启动调试。



