在linux下配置VSCode的开发环境

工欲善其事,必先利其器

系统:Manjaro

内核版本:5.4.24

gcc 版本:9.2.1

VSCode:1.43.0

VSCode下载

由于我的Linux机是Manjaro(一个ArchLinux的版本),安装VSCode方式还和传统的Debian系以及RedHat系不一样。

正常情况下Arch版本可以通过如下方式安装

$ sudo pacman -S visual-studio-code-bin

但我这系统提示签名未知信任,文件已损坏。所以直接上官网下载压缩包。

下载tar.gz压缩包并解压。

linux vscode运行java linux中vscode_linux上运行VScode的cout

准备环境

创建工程项目目录

$ cd ~
$ mkdir -p workspace/clang/helloworld # 创建helloworld目录
$ cd workspace/clang/helloworld

安装编译环境

VSCode只是个编辑器,编译工作仍然需要用户提供编译环境。

使用version或whereis来确保你的电脑安装了g++,gdb

$ g++ --version
$ gdb --version
$ whereis g++
$ whereis gdb

这里我的电脑一开始whereis gdb显示有路径如下,但是无法调用version这样是不行的

$ whereis gdb
gdb: /usr/share/gdb

如果没有安装,则使用对应linux系列的命令进行安装,Manjaro情况如下

$ pacman -S g++ gdb

启动VS Code

切换到工程文件夹目录,启动vscode,或者直接将目录文件夹拖入vscode。

接下来会的操作会自动在工程目录下建立一个.vscode文件夹,并在文件夹下建立,这些不需要手动进行

c_cpp_properties.json:编译器路径配置

task.json:编译时的命令配置

launch.json:Debug配置

写代码

新建helloworld.cpp文件,写入每门语言的第一个程序Hello world

#include 
#include 
using namespace std;
int main(){
cout << "Hello, world! from VS Code!" << endl;
}

安装C/C++插件

在左侧的插件选项卡里,搜索C++,安装微软的那个C/C++就行

linux vscode运行java linux中vscode_linux上运行VScode的cout_02

回到helloworld.cpp,接着我们创建tasks.json,告诉VS Code如何编译该程序。

通过菜单的Terminal>Configure Default Build Task。你会看到一个下拉框,选择C/C++:g++ build active file

这时候,在你的目录下会多出一个.vscode文件夹,里面自动生成了tasks.json。

内容大致如下

{
// task.json
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

command用来设置编译器,这里是g++的路径。args就是平时在命令行下,g++命令后面的参数。这里的编译文件为当前文件${file},编译输出为同一路径下的同名无后缀文件即helloworld。

回到helloworld.cpp,通过菜单Terminal>Run Build Task来完成编译。如果成功终端输入如下

linux vscode运行java linux中vscode_linux上运行VScode的cout_03

在终端中运行,输入命令./helloworld

linux vscode运行java linux中vscode_linux上运行VScode的cout_04

#include错误

若C程序中总有下划线,并且提示有检测到#include错误。请更新includePath

通过Ctrl+Shift+P打开命令导航,运行命令C/C++: Edit Configurations(UI)

linux vscode运行java linux中vscode_linux vscode运行java_05

在includePath中添加,g++的位置include位置

通过命令$ g++ -v -E -x c++ -来查看,只需添加如图两个

linux vscode运行java linux中vscode_Code_06

此时会自动生成c_cpp_properties.json文件

调试

通过菜单Run>Add Configuration,选择C++ (GDB/LLDB)>g++ build and debug active file来创建launch.json文件

文件内容大致如下

{
// launch.json
"version": "0.2.0",
"configurations": [
{
"name": "g++ build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++ build active file",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}

其中miDebuggerPath是gdb的路径,另外还可以将stopAtEntry设置为true这样在进入主函数时自动设置断点。

完成

至此,一个项目的创建,编译,调试都已经可以在VS Code下进行。