原文地址:https://blog.csdn.net/DefetC/article/details/79946100

参考了以下几篇文章:

https://www.zhihu.com/question/30315894/answer/154979413(虽然讲解的是Windows环境中的安装,但十分详尽,很有参考价值);

https://my.oschina.net/u/1044667/blog/832111;

https://blog.csdn.net/u011258217/article/details/78693564

一、vs code安装

直接在deepin商店下载即可。
二、安装gcc/g++

命令行:    sudo apt-get install build-essential
三、插件安装

C/C++(制作者是microsoft,最基础的插件)

Code Runner(实用工具,可以选中代码块后,右键选择“run coder”直接运行代码,右上角也有快捷按钮)

下面的插件都是知乎那篇文章推荐的:

C/C++ Clang Command Adapter:提供静态检测(Lint)
    Include Autocomplete:提供头文件补全
    C/C++ Snippets:Snippets即重用代码块

其他可选插件:

Bracket Pair Colorizer:彩虹花括号
    One Dark Pro:大概是VS Code安装量最高的主题
    GBKtoUTF8:把GBK编码的文档转换成UTF8编码的

clang是和gcc/g++类似的编译器,区别不在此细究。知乎那篇文章推荐clang,不过我还没有研究其在linux的配制方法。本文使用g++作为编译器。

四、配置文件
    用VSCode打开项目文件夹,打开一个源文件,直接快捷键ctrl + shift + D,点击设置图标,弹出的选择中选C++(GDB/LLDB),会自动创建项目的launch.json文件(官方文档 ),默认是调试配置。不过为什么不是运行配置?

修改其中的program字段值,改为编译生成的可执行文件路径。如 "program": "${workspaceRoot}/${fileBasenameNoExtension}.out"。即,若源文件是case.c,则将调试case.out文件。
    给launch.json添加一个任务选项: "preLaunchTask": "build","preLaunchTask"可以是"build",也可以是“compile”,不过必须与tasks.json中的“label”一致(后面会提到)。

下面给出代码:

{
        // 使用 IntelliSense 了解相关属性。
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) Launch",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceRoot}/${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
                    }
                ],
                "preLaunchTask": "build"
            }
        ]
    }

接下来按F5调试,此时弹出一个信息框,选配置任务,选择后点击Others,跳出tasks.json(官方文档 )配置文件,配置一个名为”build“的任务。

直接贴代码吧:

{
        // See https://go.microsoft.com/fwlink/?LinkId=733558
        // for the documentation about the tasks.json format
        "version": "2.0.0",
        "tasks":
        [
            {
                "label": "build",//任务名,和lanuch.json中的"preLaunchTask":"build"一致
                "type": "shell",
                "command": "g++",
                "args":["-g","${workspaceRoot}/${fileBasenameNoExtension}.cpp","-o","${fileBasenameNoExtension}.out"],//要编译的文件mian_test.cpp,${workspaceRoot}表示vscode所打开的工作目录
                "problemMatcher":
                {
                    "owner":"cpp",
                    "fileLocation":["relative","${workspaceRoot}"],
                    "pattern":
                    {
                        "regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$",
                        "file": 1,
                        "line":2,
                        "column":3,
                        "severity": 4,
                        "location": 2,
                        "message": 5
                    }
                }
            }
     
        ]
    }

五、解决一点小问题

接下来继续按F5,弹出一个问题:“Unable to start debugging. No terminal is available to launch the debugger. Please install Gnome Terminal or XTerm”

很好解决,只需要到deepin商店中下载gnome-terminal即可。

至此,环境已经初步建成。
六、细节

Ctrl+shift+d是编译,F5是编译+调试。
七、下一步安排

研究编译器clang的配置方法

在deepin 15.5中安装vs code并配置c/c++环境的更多相关文章

  1. deepin 15.11 成功安装 jupyter notebook

    系统环境: OS:deepin 15.11(均为系统默认配置) Anaconda Distribution 64位(x86)安装程序(517 MB) Jupyter 官方提供三种安装方式:conda. ...

  2. Visual Studio Code (vscode) 配置 C / C++ 环境

    Visual Studio Code (vscode) 配置 C / C++ 环境 昨天突发奇想,想使用vscode配置C++环境,因为不想下载 Dev OR codeblock,然后借助了很多网上教 ...

  3. VMware Workstation 15 Pro中安装ubuntu1804

    这篇笔记是一篇安装教程,没有什么实际的意义,仅为了记录一下……距离上次弄这东西不知道多长时间了,以至于这次再次使用时很是生疏,于是就想着把过程记录下来方便之后查看. 这里不涉及VMware Works ...

  4. 在Ubuntu14.04中安装Py3和切换Py2和Py3环境

    前几天小编给大家分享了如何安装Ubuntu14.04系统,感兴趣的小伙伴可以戳这篇文章:手把手教你在VMware虚拟机中安装Ubuntu14.04系统.今天小编给大家分享一下在Ubuntu14.04系 ...

  5. deepin的15.11中安装nvidia最新435版本驱动

    换了一个电脑,跟随潮流,CPU是不带集显的,操作系统从原来的硬盘一通搬过来的 其中Deepin Linux更新到15.11. 显卡是2060的,在Deepin中目前只集成了390的nvidia驱动,无 ...

  6. Deepin 15.4 编译安装 LNMP(PHP 5.6.31 + Nginx 1.12.1 + MySQL 5.6.36)

    先查看先前的文章:Ubuntu 14 编译安装 PHP 5.4.45 + Nginx 1.4.7 + MySQL 5.6.26 笔记 编译 Nginx #安装依赖库 sudo apt-get -y i ...

  7. Deepin 15.4 破解安装 SecureFX-7.3 失败

    参考先前的文章(Ubuntu 14 安装并破解SSH工具 SecureCRT),破解安装 SecureCRT-7.3  成功,但是破解安装 SecureFX-7.3 时就一直报错: Insuffici ...

  8. Deepin 15.5上安装 Node.js

    Node.js 源码安装 以下部分我们将介绍在Ubuntu Linux下安装 Node.js . 其他的Linux系统,如Centos等类似如下安装步骤. 在 Github 上获取 Node.js 源 ...

  9. Linux入门(15)——Ubuntu16.04安装codeblocks搭建C/C++的IDE环境

    安装codeblocks: sudo add-apt-repository ppa:damien-moore/codeblocks-stable sudo apt-get update sudo ap ...

随机推荐

  1. 什么是面向切面编程AOP

    一丶前言 看过一些描述关于AOP切面编程的文章,写的太概念化让人很难理解,下面是我自己的理解,希望能帮到新人,如有错误欢迎指正. 二丶AOP是什么,它的应用场景是什么? AOP也跟IOC,OOP这些思 ...

  2. 【Swift 3.0】iOS 国际化切换语言

    有的 App 可能有切换语言的选项,结合系统自动切换最简单的办法: fileprivate var localizedBundle: Bundle = { return Bundle(path: Bu ...

  3. 04 Django REST Framework 认证、权限和限制

    目前,我们的API对谁可以编辑或删除代码段没有任何限制.我们希望有更高级的行为,以确保: 代码片段始终与创建者相关联. 只有通过身份验证的用户可以创建片段. 只有代码片段的创建者可以更新或删除它. 未 ...

  4. Django之自带的认证系统 auth模块

    01-Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Dj ...

  5. 数据库和SQL面试题基础知识(持续更新)

    数据库方面基础知识复习 常问小问题: 一.like查询大小写问题: sql查询结果去重 SELECT distinct name FROM 表:平均数avg 一.like查询大小写问题: ①用bina ...

  6. python基础概念(转)

    基础回顾: 1.集合 集合有2个重要作用:关系测试(并集,差集,交集)和去重. 2.文件编码 2.7上默认文件编码是ASCII码,因为不支持中文,就出了GB2312,在2.7上要支持中文就必须申明文件 ...

  7. 【php-fpm】启动PHP报错ERROR: [pool www] cannot get uid for user 'apache'

    将@php_fpm_user@改为当前系统的用户名apache, 然后重新启动就ok了 注意:创建apache用户及用户组,上述命令换deamon为apache 

  8. Swagger如何测试Date类型参数

    问题 Swagger测试时,参数直接输入日期格式化后的类型,会报参数日期转换错误 :ConversionFailedException 解决 网上说在参数上添加注解 @DateTimeFormat(p ...

  9. Django 信号

    信号 Django 提供一个“信号分发器”,允许解耦的应用在框架的其它地方发生操作时会被通知到. 简单来说,信号允许特定的sender通知一组receiver某些操作已经发生. 这在多处代码和同一事件 ...

  10. Wannafly Union#1

    题目链接:http://vjudge.net/contest/142053#overview A.题意:有一个3*n的隧道,人和车轮流走,人先向右走一步,然后选在是在原地不动还是上下移动一格,之后车开 ...