系列文章
- 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/download
- Previous release versions 对于目前的高版本vscode对于运行环境有一定的要求,比如自1.86.1版本的Linux minimum requirements update ,根据开发环境和发版信息选择合适的版本
- VS Code支持便捷版,多个版本共存成为一个可能,比如要在win10开发,偶尔要远程一下CentOS7的环境,那么远程可以选择使用1.85.2版本,而本地开发选择使用最新版本
- 用户数据目录
%APPDATA%\Code
,可以使用--user-data-dir
指定- 插件目录
%USERPROFILE%\.vscode\extensions
,可以使用--extensions-dir
指定
- 官方文档 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是轻量级代码编辑器,相对于其他编辑器的一个主要优势是它的大型扩展和主题生态系统。
在线安装
- 打开VS Code
- 选择主侧栏上扩展视图图标或者使用快键键
Ctrl+Shift+X
- 搜索插件,比如’C++’
- 选择点击安装
离线安装
在线安装快捷方便,在有些情况下安装过程时常中断,导致安装时间过程,那么下载离线包进行安装是个不错选择。
- 在插件介绍页面找到仓库、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,找到对应平台的包进行下载
安装离线包
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 <iostream>
#include <vector>
#include <string>
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 的远程开发平台
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免密登录
- ssh-keygen -t rsa -P “” 使用默认配置,一路回车即可
- ssh-copy-id user@ip 拷贝秘钥到linux上。
其实该操作是将本机~/.ssh/id_rsa.pub
中的内容追加到linux环境的~/.ssh/authorized_keys
文件中。如果没有ssh-copy-id命令,可以手动操作,没有~/.ssh/authorized_keys
文件需要手动创建,并设置权限0600
问题排查
更新VSCode到1.85.2后发现,左侧的活动栏不显示Remote Explorer
图标不见了,不会显示远程创建的项目列表了,卸载重新安装Remote Explorer
插件即可
问题汇总
- VScode:ERROR: Unable to start debugging. Unexpected GDB output from command “-exec-run“
参考
- 手把手教你配置VS Code远程开发工具,工作效率提升N倍