Linux安装vscode并配置c++环境

前言

VSCode(全称:Visual Studio Code)是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全(又称IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和 Git版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能。 在 2019 年的Stack Overflow 组织的开发者调查中,VSCode 被认为是最受开发者欢迎的开发环境。
VSCode 默认支持非常多的编程语言,包括 JavaScript、TypeScript、CSS 和 HTML;也可以通过下载扩展支持 Python、C/C++、Java 和 Go 在内的其他语言。支持功能包括语法高亮、括号补全、代码折叠和代码片段;对于部分语言,可以使用 IntelliSense。Visual Studio Code 也支持调试 Node.js 程序。和 GitHub 的 Atom一样,Visual Studio Code 也基于 Electron 框架构建。Visual Studio Code 支持同时打开多个目录,并将信息保存在工作区中以便复用。作为跨平台的编辑器,Visual Studio Code 允许用户更改文件的代码页、换行符和编程语言。

一、安装vscode

方法1. 纯命令行安装

打开终端,输入以下命令:

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install code
方法2. 官网下载安装

去vscode官网下载安装包,VScode 官网地址:https://code.visualstudio.com/Download
下载完成后,在安装包所在文件打开终端,使用命令行安装(注意可以使用tab键自动补全):

sudo dpkg -i code_版本号_amd64.deb

三、打开vscode

安装完成后,在应用列表找到vscode,也可以选择添加到收藏夹。
在这里插入图片描述
打开 vscode ,出现如下界面,说明安装成功。

在这里插入图片描述

三、配置c++环境

在扩展里面搜索C/C++和 C/C++ Compile run插件,并选择安装。

在这里插入图片描述

新建一个文件夹,我在桌面新建了一个testcpp文件夹,在vscode打开新建的文件夹,新建一个test.cpp文件,写一个hello-world测试程序。

#include<iostream>

using namespace std;

int main()
{
    cout << "hello world!!!" << endl;
    return 0;
}

在这里插入图片描述
完成后,按F5键调试,按照软件的提示会建一个launch.json文件,这个文件在你新建的文件夹下面的.vscode里面,如下图所示。

在这里插入图片描述
用下面的内容替换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", // 配置类型,这里只能为cppdbg
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}/${fileBasenameNoExtension}.out", // 将要进行调试的程序的路径
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,我一般设置为true
            "cwd": "${workspaceFolder}", // 调试程序时的工作目录
            "environment": [], 
            "externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台,
                                      // 但是最新版cpptools有BUG,具体请看文末的注意
            "internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?
            "MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但目前lldb在windows下没有预编译好的版本。
            "miDebuggerPath": "gdb", // 调试器路径,Windows下后缀不能省略,Linux下则去掉
            "setupCommands": [ // 用处未知,模板如此
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "Compile" // 调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应
        }
    ]
}

保存后再按F5调试,按照软件的提示创建tasks.json文件:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用下面的内容替换tasks.json文件:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Compile", // 任务名称,与launch.json的preLaunchTask相对应
            "command": "g++", // 要使用的编译器, C就写gcc
            "args": [
                "${file}",
                "-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
                "${fileDirname}/${fileBasenameNoExtension}.out",
                "-g", // 生成和调试有关的信息
                //"-Wall", // 开启额外警告
                "-static-libgcc", // 静态链接
                "-std=c11" // C语言最新标准为c11,或根据自己的需要进行修改比如C++17
            ], // 编译命令参数
            "type": "shell", // 可以为shell或process,前者相当于先打开shell再输入命令,后者是直接运行命令
            "group": {
                "kind": "build",
                "isDefault": true // 设为false可做到一个tasks.json配置多个编译指令,需要自己修改本文件,我这里不多提
            },
            "presentation": {
                "echo": true, 
                "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档
                "focus": true, // 设为true后可以使执行task时焦点聚集在终端
                "panel": "shared" // 不同的文件的编译信息共享一个终端面板
            },
            //"problemMatcher": "$gcc"
        }
    ]
}

保存后再调试就可以了。

在这里插入图片描述


版权声明:本文为weixin_42508641原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。