手把手教你VSCode+SSH+C++编译运行调试远程开发配置

前言

这几天看到miaotony学长写了一篇基于VSCode和ssh实现远程编程/炼丹的博客。

我稍微看了看,他那个稍微有点复杂,实现了从任意一个外网主机通过代理服务器实现对内网主机的访问,并可以在这台内网电脑上进行远程开发。本蒟蒻并没有一台内网服务器,所以我只实现了从一个带有vscode的主机远程连接到阿里云服务器上进行远程开发的效果。下面我来记录我的实现过程。

  • 解决了SSH免密登录的问题。
  • 解决了vscode连接远程服务器的问题
  • 解决了远程服务器c++/c环境配置问题
  • 解决了远程编译运行调试c++/c源文件问题

服务器配置

我用的是阿里云,我们要使用ssh远程连接,所以要使用git,在配置阿里云服务器时,我们执行yum install -y git虽然也能安装git,但是默认安装的版本比较旧,比如1.8.3版本的,现在最新版本的都有2.25.1版本了。而vscode的远程链接需要2以上的版本。

如果阿里云服务器上已经安装了git,先检查一下git版本。

git --version

如果它返回的版本是2版本以下,比如1.8.3版本。需要执行来将旧版本的git卸载掉。

yum remove -y git

然后依次执行对应命令。

以CentOS7系统为例:

#安装Git

#从github下载git源码
wget https://github.com/git/git/archive/v2.22.0.tar.gz
# 依赖库安装
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install  gcc perl-ExtUtils-MakeMaker
# 解压gz源码压缩包, 这里注意压缩包名字,不一定是v2.22.0.tar.gz,请自行通过 ls -al命令查看
tar -xzf v2.22.0.tar.gz
# 进入解压目录
cd git-2.22.0
# 编译安装
make prefix=/usr/local/git all
make prefix=/usr/local/git install
# 添加到环境变量
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc
# 查看版本号
git --version
配置c/c++编译运行调试环境

安装g++/gcc,执行以下命令:

yum install gcc gcc-c++

安装gdb,执行以下命令:

yum install gdb

这时环境就搭建好了。

在vscode上按F5添加launch.json文件

将文件内容覆盖为

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: 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程序会暂停在入口处
            "cwd": "${workspaceFolder}", //调试程序时的工作目录
            "environment": [], //环境变量
            "externalConsole": false, //调试时是否显示控制台窗口
            "MIMode": "gdb", //指定连接的调试器,可以为gdb或lldb
            "miDebuggerPath": "/usr/bin/gdb", //gdb路径
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build" //调试开始前执行的任务,一般为编译程序
        }
    ]
}

其中几个需要注意的点:

  • name参数是为了给配置做名称上的区分;
  • program需要跟task.json中生成的out路径对应,这里为了让后面的项目都可以使用这个配置,因此将每个项目的.out文件生成在对应项目下;
  • miniDebuggerPath代表的gdb路径需要根据linux命令where is gcc确定;
  • preLaunchTask的任务名称需要跟task.json中的label名称对应,在调试前需要先编译。

然后按下ctrl+shift+p,选择Tasks:Configure Task即配置任务,然后选择使用模板生成task.json,然后任务模板选择Others,此时自动生成task.json。将task.json中的内容替换为:


{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build", //在launch.json文件中有用到
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.out"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

args这样写的目的是为了后面使用统一配置,并方便.out调试文件输出到指定的目录下。

这时服务器端就配置好了。

本地电脑配置

Git配置

首先还是先检查版本。如果是2版本以下就更新git,在windows系统下执行:

git update-git-for-windows
配置vscode
安装插件

在插件市场中搜索remote development并安装。

然后通过ctrl+shift+p打开设置Remote-SSH-Settings,设置Remote.SSH:Show Login Terminaltrue

接着直接点击左下角的ssh绿色图标:

在上方输入框内输入yourname@ip远程主机用户名与ip地址,按回车进行连接。

设置常用主机

当然你也可以设置常用主机,通过ctrl+shift+p搜索并点击Remote-SSH: Open Configuration File,选择 一个配置文件,就打开了配置文件。

Host #这里随意输入你喜欢的名字
    HostName #输入你的IP地址
    User #输入你登录的远程服务器用户名
远程终端

点击新建终端即可打开Bash

首次登录后,VS Code会自动弹出一个新的窗口用于远程工作,并且会自动在远程主机上安装VS Code server。

在登录过程中需要不断的输入密码,只要弹出就输入密码即可。

但我们可以设置ssh免密登录。

ssh免密登录远程服务器

首先先确认~目录下有没有.ssh文件夹,用ls -al命令确认。

  • 如果没有.ssh文件夹的话:

登录服务器root用户,然后在~目录下创建.ssh文件夹

# mkdir .ssh
# cd .ssh

在服务器端.ssh文件下创建authorized_keys,执行

# vi authorized_keys
  • 如果有.ssh文件夹:

在这里,其实ssh公钥没有必要重复生成。如果你计算机里已经有了公钥文件可以直接复制。在电脑里找到id_rsa.pub(可以直接全局搜索)用记事本打开,把内容复制下来。

如果没有公钥文件,我们就必须生成公钥文件。

接下来在本地生成公钥文件,在桌面空白处右击选择git bash(这里默认个人电脑已经安装git),执行以下命令。(这个命令在自己电脑上执行)

# ssh-keygen

生成公钥密钥文件,这一步很重要。

然后直接一路回车。不需要设置密码。

此时在目录下就会有两个文件,分别是id_rsa 和 id_rsa.pub

其中 id_rsa.pub 就是公钥文件 我们复制一份

接着我们把公钥内容粘贴到服务器的文件(root/.ssh/authorized_keys)中
此时可以用VSCode直接进入服务器,打开authorized_keys,复制进去就行了。

最后我们修改它的权限

# chmod 600 ~/.ssh/authorized_keys
# chmod 700 ~/.ssh

然后我们在自己的电脑上,打开cmd,使用ssh方式连接我们的云服务器并输入密码。

$ ssh -v git@(这里填服务器公网IP地址)

最后提示

Welcome to Alibaba Cloud Elastic Compute Service !

说明免密登录成功了。到这里所有的配置就完成了。

远程服务器安装环境扩展

这个时候虽然可以写代码,但服务器还识别不了语言,在远程开发的时候扩展分为本地扩展和远程扩展,因为连接远程服务器vscode会自动新打开一个窗口,在这个新窗口里点击应用市场,搜索c/c++插件和code runner插件,安装到服务器上即可。

享受远程开发吧

在左侧活动栏打开资源管理器,点击打开文件夹,选择一个远程服务器开发文件夹打开就可以实现远程开发了。您甚至可以不要带电脑,在任何一个可以联网的主机上实现c/c++远程开发。

Reference

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SSH连接中安装VSCode配置C/C++开发环境的具体步骤如下: 1. 首先,在本地计算机上打开终端或命令提示符,并使用SSH连接到远程服务器。命令格式为:`ssh -v git@(服务器公网IP地址)`。 2. 确保已经在远程服务器上安装了Git和依赖库。可以通过以下命令安装所需的依赖库: ``` yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install gcc perl-ExtUtils-MakeMaker ``` 3. 从VSCode官方网站下载适用于您的操作系统的安装包,并将其上传到远程服务器上。可以通过以下命令将安装包从本地上传到远程服务器: ``` scp /本地/路径/vscode-版本号.tar.gz git@(服务器公网IP地址):/远程/路径/ ``` 4. 在远程服务器上解压缩VSCode安装包。可以使用以下命令解压缩: ``` tar -xzf vscode-版本号.tar.gz ``` 5. 进入解压目录并运行VSCode。使用以下命令: ``` cd vscode-版本号/ ./code ``` 6. 在VSCode中安装C/C++扩展。打开VSCode后,点击左侧的扩展图标,搜索并安装"C/C++"扩展。 7. 在VSCode配置C/C++开发环境。点击左侧的"文件"菜单,选择"首选项",然后选择"设置"。在设置中搜索"C/C++",找到"C/C++: Configure"选项,并按照提示进行配置。 8. 现在您可以在VSCode中使用SSH连接远程服务器,并在该环境中进行C/C++开发了。 请注意,以上步骤是基于CentOS 7系统的示例。如果您使用的是其他操作系统,请相应地调整命令和步骤。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [手把手VSCode+SSH+C++编译运行调试远程开发配置](https://blog.csdn.net/weixin_45646006/article/details/105021237)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值