Visual studio Code的C/C++开发环境搭建

系列文章

  • Visual studio Code的C/C++开发环境搭建
  • Visual studio Code的clangd插件一篇通,上乘的C/C++开发环境配置

文章目录

  • VS Code
    • 基本配置
    • VS Code插件安装
      • 在线安装
      • 离线安装
    • C/C++环境配置
      • 环境准备
      • 使用实例
    • 基于 VSCode 的远程开发平台
      • 环境准备
    • 问题汇总
    • 参考

VS Code

Visual Studio Code(简称VS Code)是一个由微软开发,同时支持Windows 、 Linux和macOS等操作系统且开放源代码的代码编辑器,它支持测试,并内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全(类似于 IntelliSense)、代码片段和代码重构等。该编辑器支持用户个性化配置,例如改变主题颜色、键盘快捷方式等各种属性和参数,同时还在编辑器中内置了扩展程序管理的功能

  • 官网下载 https://code.visualstudio.com/
  • 官方文档 https://code.visualstudio.com/docs
  • C/C++插件官方文档 https://code.visualstudio.com/docs/languages/cpp

基本配置

  • 配置glob 模式以排除文件和文件夹,避免在资源管理器中显示中间文件
    • 【首选项】【设置】【文本编辑器】【文件】或者在设置中直接搜 file exclude,比如排除C++的中间文件**/*.o,排除Python的中间文件**/__pycache__

VS Code插件安装

VS Code是轻量级代码编辑器,相对于其他编辑器的一个主要优势是它的大型扩展和主题生态系统。

在线安装

  1. 打开VS Code
  2. 选择主侧栏上扩展视图图标或者使用快键键Ctrl+Shift+X
  3. 搜索插件,比如’C++’
  4. 选择点击安装

离线安装

在线安装快捷方便,在有些情况下安装过程时常中断,导致安装时间过程,那么下载离线包进行安装是个不错选择。

  • 在插件介绍页面找到仓库Repository链接,如 https://github.com/microsoft/vscode-cpptools,找到对应的插件发布链接选择下载对应平台的安装包,如 https://github.com/microsoft/vscode-cpptools/releases
  • 在 https://marketplace.visualstudio.com/ 搜索插件,进入插件页面,如 https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools ,找到上侧的Version Histrory或者右侧的Download Extension,找到对应平台的包进行下载
    Visual studio Code的C/C++开发环境搭建_第1张图片
    安装离线包
    Visual studio Code的C/C++开发环境搭建_第2张图片

C/C++环境配置

在window下安装C/C++环境以及VSCode,并能够简单初步使用,本测试环境如下

  • VS code 1.52
  • Win 10
  • msys2 / Mingw-w64
  • CentOS7

参考官方文档 https://code.visualstudio.com/docs/cpp/config-mingw

环境准备

  • 安装gcc等相关编译链,参照之前的MSYS2开发环境搭建,并将相应的路径加入PATH环境变量中,比如:D:\msys64\mingw64\bin
  • 官网下载VS code,双击安装即可
  • 启动VScode,Ctrl + Shift + X切换到插件窗口,搜C++, 安装C/C++,C++ Intellisense以及`Chinese (Simplified) Language Pack for Visual Studio Code
    等插件

使用实例

  • 在桌面新建demo目录

  • 【文件】-【打开文件夹】选择创建的demo目录

  • 【文件】-【新建文件】demo.cpp

    #include 
    #include 
    #include 
    
    int main(int argc, char *argv[])
    {
        std::cout << "Hello World" << std::endl;
        std::vector<std::string> cities{"JiNan", "BeiJing", "ShenZhen"};
    
        for (auto& city : cities)
        {
            std::cout << city << std::endl;
        }
    
        return 0;
    }
    
  • 在demo.cpp编辑界面,Ctrl + Shift + P,输入 C/C++,点击 C/C++: 编辑配置 (UI),配置完成后会自动生成.vscode/c_cpp_properties.json

    • 编译器路径,如:D:/msys64/mingw64/bin/g++.exe
    • 编译器参数
    • IntelliSense 模式,我选的 gcc-x64
    • 包含路径,添加非标准化路径下的include路径
  • 在demo.cpp编辑界面,【终端】-【配置默认生成任务】在弹出的选项卡中选择要用做默认生成任务的任务,我这里选择的是C/C++: g++.exe build active file, VSCode会自动生成.vscode/tasks.json文件,文件内容如下

    {
    	"version": "2.0.0",
    	"tasks": [
    		{
    			"type": "cppbuild",
    			"label": "C/C++: g++.exe build active file",
    			"command": "D:\\msys64\\mingw64\\bin\\g++.exe",
    			"args": [
    				"-g",
    				"${file}",
    				"-o",
    				"${fileDirname}\\${fileBasenameNoExtension}.exe"
    			],
    			"options": {
    				"cwd": "D:\\msys64\\mingw64\\bin"
    			},
    			"problemMatcher": [
    				"$gcc"
    			],
    			"group": {
    				"kind": "build",
    				"isDefault": true
    			},
    			"detail": "compiler: D:\\msys64\\mingw64\\bin\\g++.exe"
    		}
    	]
    }
    
  • 在demo.cpp的编辑界面,【终端】-【运行生成任务】或者快捷键Ctrl + Shift + B,执行编译任务生成demo.exe可执行程序

  • 在demo.cpp的编辑界面,【运行】-【添加配置】在弹出的选项卡中选择环境 C++(GDB/LLDB)选在配置,我这里选的第一个 **g++.exe - 生成和调试活动文件 **,自动生成.vscode/launch.json

    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "g++.exe - 生成和调试活动文件",
                "type": "cppdbg",
                "request": "launch",
                "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "args": [],
                "stopAtEntry": false,
                "cwd": "D:/msys64/mingw64/bin",
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
                "miDebuggerPath": "D:\\msys64\\mingw64\\bin\\gdb.exe",
                "setupCommands": [
                    {
                        "description": "为 gdb 启用整齐打印",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "C/C++: g++.exe build active file"
            }
        ]
    }
    
  • 在demo.cpp编辑界面,在行号前面出现小手,点击设置断点;【运行】-【启动调试】即可调试程序

基于 VSCode 的远程开发平台

  • VS Code Remote Development
  • Remote development over SSH

The Remote Development extension pack includes three extensions. See the following articles to get started with each of them:

  • Remote - SSH - Connect to any location by opening folders on a remote machine/VM using SSH.
  • Remote - Containers - Work with a sandboxed toolchain or container-based application inside (or mounted into) a container.
  • Remote - WSL - Get a Linux-powered development experience in the Windows Subsystem for Linux.

本文简单阐述通过SSH连接linux开发环境进行开发的过程

环境准备

  • 准备好的Linux开发环境(这里CentOS7为例)
    • yum install gcc gcc-c++ pkgconfig automake autoconf
    • cmake > 3
      • yum install epel-release
      • yum install cmake3
    • git > 2
      • yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
      • yum install git
  • 本地安装与OpenSSH兼容的ssh客户端
  • VS Code安装Remote - SSH插件

Win10下安装与OpenSSH兼容的ssh客户端安装有多种方式:

  • Windows10已经预装了OpenSSH客户端 【设置】-【应用】-【应用和功能】-【管理可选功能】,查看OpenSSH客户端是否已安装,没有就点击 添加功能进行添加;
  • Git自带ssh客户端,可以安装https://git-scm.com/download后,将Git的bin加入PATH环境变量,如路径D:\Program Files\Git\usr\bin
  • 搭建MSYS2开发环境,并安装ssh客户端

安装ssh客户端以后,配置SSH免密登录

  1. ssh-keygen -t rsa -P “” 使用默认配置,一路回车即可
  2. ssh-copy-id user@ip 拷贝秘钥到linux上。
    其实该操作是将本机~/.ssh/id_rsa.pub中的内容追加到linux环境的~/.ssh/authorized_keys文件中。如果没有ssh-copy-id命令,可以手动操作,没有~/.ssh/authorized_keys文件需要手动创建,并设置权限0600

问题汇总

  • VScode:ERROR: Unable to start debugging. Unexpected GDB output from command “-exec-run“

参考

  • 手把手教你配置VS Code远程开发工具,工作效率提升N倍

你可能感兴趣的:(开发环境搭建,vscode)