windows平台中使用vscode远程连接linux进行c++开发配置教程(内容详细适合小白)-2021-3-30

2023-11-18


一、简要介绍

vscode作为广受欢迎的程序编辑器,可以支持多种语言编写,并提供了丰富和强大的插件。Remote-ssh是vscode提供的ssh服务插件,基于此插件可以实现在windows平台下远程连接linux平台进行软件开发,这种方式也成为了腾讯阿里等互联网企业广受欢迎的开发方式之一。本文将详细介绍在windows平台中使用vscode远程连接linux进行c++开发的软件安装和系统配置教程,如有错误,请指正。

二、软件安装步骤

1.linux系统安装

linux系统可以采用以下方式进行安装使用:
1.直接在另一台电脑上安装linux系统
2.在安装了windows系统的本地电脑上通过虚拟机vmware安装linux系统
3.如果本地电脑上是win10系统,可以使用自带的linux子系统
4.购买腾讯云或者阿里云的linux服务器

2.vscode安装

在官网中选择windows平台下的vscode版本进行安装,官网地址:https://code.visualstudio.com/

在这里插入图片描述
vscode安装之后,可以根据开发需求安装具体的插件,首先可以安装中文插件进行汉化。打开vscode,点击左侧的扩展商店,输入chinese搜索中文插件,选择简体中文进行安装。
在这里插入图片描述
vscode插件以后一般需要重新启动vscode才能生效,关闭重启后会发现vscode变为中文版。

3.ssh安装

SSH 是Secure Shell 的缩写,它为远程登录会话和其他网络服务提供了安全性的协议。可以在windows平台上运行ssh客户端,linux系统中运行ssh服务端,从而实现windows到linux 的远程连接。
vscode2019以后的版本提供了remote-ssh插件,在windows平台上安装该插件相当于完成了ssh客户端的安装。安装时在扩展商店搜索ssh,选择该插件进行安装。
在这里插入图片描述
接着查看linux系统上是否安装了ssh服务端,首先可以通过以下命令查看ssh服务是否在运行,若已经在运行说明已经安装ssh服务端并启动运行了。

netstat -nltp |grep ssh

在这里插入图片描述
若并未找到运行的ssh服务,可以通过以下命令尝试进行启动:

service sshd start

若能成功启动,说明已经安装ssh服务端。若不能启动,说明ssh服务端并未安装,此时需要基于不同的linux发行版本采用不同的命令进行安装。

//如果你用的是redhat,fedora,centos等系列linux发行版,那么敲入以下命令:
sudo yum install sshd 
//如果你使用的是debian,ubuntu,linux mint等系列的linux发行版,那么敲入以下命令:
sudo apt-get install sshd 

安装完成之后,再使用前面介绍的启动命令启动ssh服务即可。若想设置开机后自动启动ssh服务,可以采用以下命令:

chkconfig sshd on
//若是chkconfig sshd off则禁止SSH开机启动

4.配置Remote-SSH

安装完成后会出现一个远程资源管理器图标,其中可以选择SSH Targets。
在这里插入图片描述
然后点击配置,并在右侧的命令窗口中选择第一个配置文件。
在这里插入图片描述
配置文件如下所示,其中Host是名字(随便写),HostName 是需要远程连接的ip,也就是我们安装的linux系统的ip地址,User 是远程用户名(如:root),正确设置后保存关闭即可。
在这里插入图片描述
配置文件中一组信息(host-hostname-user)对应着一个连接目标,会在ssh targets下显示对应目标。可以选择一个目标,进行远程连接。
在这里插入图片描述
选择远程平台为linux
在这里插入图片描述
输入前面配置文件中user用户对应的登录密码
在这里插入图片描述
连接成功之后可以在左下角看到连接标识。
在这里插入图片描述
若不想每次远程连接时都要输入用户密码,可以设置免密登录方式,不过这样可能在安全性方面有所欠缺,需要自己权衡考虑。

5.安装远程插件

远程连接成功建立后,在扩展商店中可以看到本地和远程主机安装的所有插件,如下所示:
在这里插入图片描述
为了便于进行c++开发,需要安装c/c++插件和C++ Intellisense插件,安装时需要选择在远程主机进行安装,避免错误安装到本地。
在这里插入图片描述
在这里插入图片描述

6.简单小测试

点击左侧资源管理器,选择打开文件夹,可以打开远程主机的文件夹,然后在某个文件夹下新建.cpp文件进行简单练习。
在这里插入图片描述
在这里插入图片描述
点击左侧资源管理器,选择打开文件夹,可以打开远程主机的文件夹,然后在该文件夹下新建.cpp文件进行简单练习,可以发现c语言内置的类型int,string等会有类型提示和自动补全,但是stl中的类型没有自动提示。虽然可以实现程序的编写,但还是不太方便,接下来第三章将详细介绍如果通过配置文件配置高效的开发环境。
在这里插入图片描述

三、配置vscode开发环境

1.默认设置、用户设置、远程设置和工作区设置

vscode设置分为默认设置、用户设置、远程设置和工作区设置四种级别,位于后面级别的设置自动继承前面级别设置的内容;并且后面级别的设置可以修改继承的内容,完成各个模块个性化的调整

默认设置是defaultSettings.json文件,该文件只读不能进行修改;VScode安装后即有的配置文件,包含VScode的所有设置项,后面的所有设置更改,都将会覆盖这个文件中对应的设置项。可以通过左下角的管理打开命令面板,在命令面板中输入setting进行搜索,找到defaultSettings.json文件进行打开,查看默认设置内容。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以通过左下角管理按钮打开vscode设置界面,当通过vscode将windows远程连接到linux主机时,可以看到用户设置、远程设置和工作区设置三种类型,用户设置对于当前登录windows的用户创建的所有本地vscode项目均生效,远程设置对于vscode远程连接登录的linux用户创建的所有远程vscode项目生效,工作区设置只对当前打开的项目(文件夹)生效
在这里插入图片描述
在这里插入图片描述
要修改某个具体选项时,可以在命令行搜索相关选项名进行快速查找,如下所示。
在这里插入图片描述
不论是用户、远程还是工作区设置,除了通过UI界面进行编辑修改之外,还可以通过json文件进行编辑修改。选择某种类型的设置,在右上角可以通过打开设置按钮打开对应json文件。设置文件上方会显示设置文件所在路径,修改设置文件的内容,即可完成设置编辑。
在这里插入图片描述
在这里插入图片描述
三种设置的对应设置文件路径一般如下所示:

- Windows: %APPDATA%CodeUsersettings.json

- Linux: $HOME/.config/Code/User/settings.json

工作空间设置的文件保存在当前目录的.vscode文件夹下。

其中若当前项目中不存在.vscode文件夹时,第一次打开工作区的设置文件时,会自动创建.vscode和setting文件。
在这里插入图片描述
在这里插入图片描述
最后,设置中各个选项的具体意义可以在vscode官网进行查看,结合选项意义和实际项目需求即可完成设置。

2.c++开发设置

针对vscode远程连接linux服务器进行c++开发的情况,一般常用的是采用c_cpp_properties.json,tasks.json和launch.json进行环境配置。

a).c_cpp_properties.json

c_cpp_properties.json文件可以通过ctrl+shift+P打开命令面板,然后点击c/c++编辑配置即可打开。首次打开时,会在.vscode文件夹自动创建该文件。
在这里插入图片描述
c_cpp_properties.json文件是c/c++插件对应的配置文件,允许用户更改前面设置中的部分选项,例如编译器的路径,包含路径,C ++标准(默认为C ++ 17)等,我配置的c_cpp_ properties.json文件内容如下,其中includePath字段新增了“/usr/include/**”路径,这个路径中放置了linux系统常见的头文件,包括c++相关头文件,便于实现项目开发。编译器采用的是g++,若linux系统中未安装g++,则要先进行安装

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [             //搜索头文件时的路径
                "${workspaceFolder}/**", //默认路径       
                "/usr/include/**"        //新增路径  
            ],
            "defines": [],
            "compilerPath": "/usr/bin/g++", //编译器路径
            "cStandard": "c99",             //编译时采用的c标准
            "cppStandard": "c++14",         //编译时采用的c++标准
            "intelliSenseMode": "gcc-x64"   //智能模式
        }
    ],
    "version": 4
}

配置完成之后我们可以在当前项目文件夹中新建一个简单的hello word程序进行练习,如下所示:
在这里插入图片描述

b).tasks.json

tasks.json文件来告诉VS Code如何构建(编译)程序。可以在命令面板中点击任务:配置任务按钮,然后选择g++编译的方式(和c_cpp文件中指定的编译器匹配)打开tasks.json文件。首次打开时,会在.vscode文件夹自动创建该文件。
在这里插入图片描述
在这里插入图片描述

tasks.json文件的内容如下所示:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",                       //编译类型
			"label": "C/C++: g++ build active file",  //标签,用于区分不同任务
			"command": "/usr/bin/g++",                //编译命令
			"args": [                                 //参数
				"-g",
				"${file}",                            //表示当前项目中的所有活动文件
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}"  //表示在当前项目文件夹下生成与活动文件同名但没有扩展名的可执行文件
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "compiler: /usr/bin/g++"
		}
	]
}

tasks.json文件设置完成之后,可以在命令面板点击任务:运行任务按钮,并选择执行刚刚设置的任务(通过任务标签进行区分)。任务执行编译时会在下方终端窗口显示编译结果,注意由于tasks.json中编译命令指定的是活动文件,所以在执行任务时必须将要编译的cpp文件打开
在这里插入图片描述
在这里插入图片描述
tasks.json文件可以进行修改,一种常见修改如下:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",                       //编译类型
			"label": "C/C++: g++ build active file",  //标签,用于区分不同任务
			"command": "/usr/bin/g++",                //编译命令
			"args": [                                 //参数
				"-g",
				"${workspaceFolder}/*.cpp",           //表示当前项目中的cpp文件
				"-o",
				"hello_word"  //生成指定文件名的可执行文件
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "compiler: /usr/bin/g++"
		}
	]
}

c).launch.json

launch.json文件用以配置VS Code以在按F5调试程序时启动GDB调试器。若linux系统中未安装gdb,则要先进行安装。在左侧主菜单中,选择“运行和调试” ,然后点击蓝色按钮,选择“ C ++(GDB / LLDB)”,此时vscode自动打开launch.json文件。首次打开时,会在.vscode文件夹自动创建该文件。
在这里插入图片描述
launch.json文件内容示例如下。

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "(gdb) 启动",   //名称随便取
            "type": "cppdbg",       //正在使用的调试器,使用Visual Studio Windows时必须为cppvsdbg,使用GDB或LLDB时必须为cppdbg
            "request": "launch",    //表示此配置是用于启动程序还是附加到已运行的实例上
            "program": "${workspaceFolder}/hello_word",   //要执行的可执行文件的完整路径
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",          //可执行程序完整路径(不包含程序名称)
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

设置完成之后,在程序指定位置添加断点,并在“运行和调试”界面开启调试即可进行程序调试。
在这里插入图片描述
调试时在编辑器的顶部,将显示一个调试控制面板,可以进行单步、多步调试控制,同时在编辑器左侧会显示局部变量、监视的变量和程序调用堆栈等信息。
在这里插入图片描述


总结

本文对在windows下通过vscode远程连接linux服务器进行开发的环境搭建进行了简单介绍,如有不当之处,请指正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows平台中使用vscode远程连接linux进行c++开发配置教程(内容详细适合小白)-2021-3-30 的相关文章

随机推荐

  • 漏洞挖掘之乱拳打死老师傅——Fuzzer

    背景 Fuzzer是一种通过产生一系列非法的 非预期的或者随机的输入向量给目标程序 从而完成自动化的触发和挖掘目标程序中的安全漏洞的软件测试技术 相比于形式化的软件漏洞测试技术 比如 符号执行技术 Fuzzer往往能够在实际的应用中挖掘更多
  • 【编程之路】面试必刷TOP101:动态规划(67-71,Python实现)

    面试必刷TOP101 动态规划 67 71 Python实现 67 不同路径的数目 一 小试牛刀 67 1 递归 首先我们在左上角第一个格子的时候 有两种行走方式 如果向右走 相当于后面在一个 n 1
  • vue 如何实现多页面应用(简单版)

    1 进入 build webpack base conf js目录下 在module exports的域里 找到entry 在那里配置添加多个入口 2 对开发环境run dev里进行修改 打开 build webpack dev conf
  • Rancher 图形化管理K8S

    题外话 之前我们一直都是使用命令行来管理K8S的 这种做法虽然对程序员来说看起来很炫酷 但有时候用起来还是挺麻烦的 今天我们来介绍一个K8S可视化管理工具Rancher 使用它可以大大减少我们管理K8S的工作量 希望对大家有所帮助 简介 R
  • Spyder更改为python3.10解释器

    Spyder更改为python3 10解释器 因为系统安装的python版本为3 10 但是官网下载最新的Spyder内置python版本为3 7 9 强迫症一犯就想着更改成3 10 步骤如下 偏好里面更改控制台的运行方式 根据个人习惯设置
  • java高频面试题含答案(网络)

    java高频面试题含答案 网络 1 http 响应码 301 和 302 代表的是什么 有什么区别 答 301 302 都是HTTP状态的编码 都代表着某个URL发生了转移 区别 301 redirect 301 代表永久性转移 Perma
  • 膜拜,阿里架构师着重推荐的SprinBoot手册—进阶、原理、实战与面试题分析指南

    我们知道 Spring Boot是一个集成性的开源框架 内部整合了很多第三方组件和框架 这些组件和框架应用如此之广泛 以至于大家反而往往对如何更好地使用Spring Boot自身的功能特性并不是很重视 事实上 Spring Boot自身的功
  • [小技巧] git: Your branch and 'origin/master' have diverged

    本文参考 http stackoverflow com questions 19864934 git your branch and origin master have diverged how to throw away local c
  • mac os x excel 单元格换行

    参考 http jingyan baidu com article 0f5fb09911cb366d8334ea07 html Windows 下是 alt 回车 mac os x 下变成 alt ctrl 回车
  • Vue3通透教程【十四】TS其他类型详解(一)

    文章目录 写在前面 对象类型 函数结构类型 数组类型 元组 枚举 类型别名 写在最后 写在前面 专栏介绍 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章 应粉丝要求开始更新 Vue3 的相关技术文章 Vue 框架目前的地位大家应该
  • 毕业设计 STM32的智能WIFI视频人脸追踪监控系统

    0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求 为了大家能够顺利以及最少的精力通过毕设 学长分享优质毕业设计项
  • 函数内变量的提升(function hoisting)

    1 函数内外有重名的变量时 局部变量会覆盖全局变量 原因是函数域优先于全局域 2 当js执行进入函数时 函数内部声明过的所有变量会被提到最前 但同时对变量的赋值等操作不会被提升 例 var a 123 function test alert
  • 12帧跑步动画分解图_今天给大家分享一个跑步动画教程和注意事项!希望有所帮助!...

    跑步的动画的制作 一 跑步的基本原理 前面介绍了走路的动画的制作 跑步的制作方式和走路的方式是一样的 但是我们怎样来区别这两个动作的不同呢 虽然跑步在日常生活中经常看见 但是我们可能从来没有仔细的分析每一个动作 现在我们再来简单的说一下走路
  • upload labs第二关

    从上往下 首先定义两个变量 其中一个为空 在点击提交按钮后 前提文件路径可以找到 开始看文件类型是否为jpeg png gif格式 is upload false msg null if isset POST submit if file
  • Docker搭建zookeeper

    问题背景 前言 本文参考自 docker compose快速搭建Zookeeper集群 熬到凌晨三点多验证部署成功 网上有很多文章已经无法正确部署了 因为有些东西版本升级了 版本跟不上就会报错 还有一种更加详细更加全面的部署方式 Docke
  • 新人如何快速高效的学习Java?

    如果是新人 不想通过培训班 想学java 那么我可以很认真的告诉你 如果你是因为兴趣学学 那么你怎么学都可以 建议你找一些零基础入门的视频来学习 先看一遍 认识一下Java是个什么东西 如果是想转行学习 靠这个来工作 那么你就要好好的制定一
  • 一台计算机要两个内网,局域网如何在一台电脑上设置两个IP地址

    由于工作原因 有时需要连接两个局域网 除了频繁地更换不同局域网的网线 还要不停地设置不同局域网的IP地址 真是很麻烦 下面是学习啦小编收集整理的局域网如何在一台电脑上设置两个IP地址 希望对大家有帮助 局域网在一台电脑上设置两个IP地址的方
  • STM32F4单片机ADC采样及ARM-DSP库的FFT

    模拟信号经过ADC采样后变成数字信号 数字信号可以进行FFT运算 在频域中更容易分析信号的特征 本文将介绍如何用STM32F4的进行ADC采样 并利用ARMDSP库里的FFT算法对ADC采样值进行快速傅里叶变换 我使用的是STM32F407
  • CUDA编程中内存管理机制

    GPU设备端存储器的主要分类和特点 大小 全局 Global 和纹理 Texture 内存 大小受RAM大小的限制 本地 local 内存 每个线程限制在16KB
  • windows平台中使用vscode远程连接linux进行c++开发配置教程(内容详细适合小白)-2021-3-30

    文章目录 一 简要介绍 二 软件安装步骤 1 linux系统安装 2 vscode安装 3 ssh安装 4 配置Remote SSH 5 安装远程插件 6 简单小测试 三 配置vscode开发环境 1 默认设置 用户设置 远程设置和工作区设