VSCode远程编程环境配置
本文最后更新于510 天前,其中的信息可能已经过时,如有错误请发送邮件到mapleleaf2333@gmail.com

近期由于一些科研任务的需要,以及希望强化一下计算机网络的基础知识(其他知识也打算后续慢慢补上),决定开个新坑,跟着 Beej’s Guide to Network Programming 这本书来做一些简单的网络编程。网络编程主要是以C为主,因此需要在Linux上编译代码,有一个很方便的方法就是直接用VSCode连接虚拟机,通过VSCode实现在虚拟机上的编程,因此便有了该配置环境的记录。

下面记录的整个过程是基于配完的环境进行的回顾,因此可能存在许多疏漏,如果有疏漏的地方,愿意的话可以指出来,我会即时修改的,谢谢各位。同时,也有可能因为不同人的电脑环境配置不同,出现各种奇奇怪怪的bug,遇到问题多查查资料,总能解决的。

前期准备

主要需要的软件工具有:VSCode、VMWare软件(已经按照好带Ubuntu系统的虚拟机)

本人使用的是VMWare上的ubuntu20.04系统的虚拟机,虚拟机之前在操作系统课程设计就已经配好了,因此可以直接通过vscode连接虚拟机,并且能使用ssh免密登录,大概做的内容有:

安装好相关插件

在VSCode上,需要安装的插件最核心的是Remote – SSH,它是远程编程的基础插件。

配置虚拟机

首先需要确保虚拟机已经安装好了ssh工具,具体命令为:

sudo apt-get install openssh-server

安装完后,记得使用以下命令检查一下服务是否开启,没开启的记得开启。

# 查看状态的命令
systemctl status sshd

# 启动服务的命令
service sshd start

然后通过命令查看虚拟机的内网IP地址,记录下虚拟机IP地址。

这里有一个很重要的点,需要检查自己的电脑能否直接ping通虚拟机的IP地址,如果ping不通,需要先配置好虚拟机的网络,这里就不赘述。比如我的虚拟机IP地址为192.168.186.100,则一定要在Window上先用cmd输入命令检查一下:

远程连接虚拟机

1.重新启动VSCode,可以看到界面的左下角有一个绿色的按钮

2.点击之后会有一个下拉框,可以通过“Open SSH Configuration File”来查看相关的配置文件,需要建立连接,我一般使用“Connect Current Window to Host”。

如果查看配置文件,可以看到以下内容。这里Host是自己编辑的主机名,HostName则为主机号(填写你要连接的虚拟机即可),User填写登录虚拟机的用户名。

如果点击连接,则看到以下内容。如果完成了上面的配置,应该可以在这里看到主机名,也可以通过“Add New SSH Host”添加新的连接,形式参照提示输入“ssh 用户名@虚拟机IP”即可,之后会需要你保存相关配置信息,选择第一个的位置(User目录下的.ssh)即可。

3.然后便有个界面需要你输入密码,输入后点击回车即可完成连接。连接完成后,可以直接在vscode里面打开终端,即可看到linux 的命令行窗口。

建立SSH免密连接

首先我们需要在虚拟机上生成ssh密钥,输入以下命令

ssh-keygen

然后一路选择默认配置(狂按回车即可),然后便可以生成一对密钥和公钥,通过以下命令将本机的公钥放到authorized_keys中,便可以实现本机的免密ssh登录。

cd ~/.ssh
cat id_rsa.pub >> authorized_keys
sudo chmod 600 authorized_keys
sudo chmod 700 ~/.ssh
sudo service sshd restart

查看window本机的id_rsa.pub(如果没有的话,则在cmd上用“ssh-keygen”命令生成),并将其内容拷贝到虚拟机上的authorized_keys中,然后在终端输入“sudo service sshd restart”命令重启Linux的ssh服务,就可以发现vscode也可以免密登录到虚拟机了。(可能连接时会让你输入密码,直接回车即可自动连接)

配置VSCode上C的编译环境

安装相关插件

需要在虚拟机上安装的插件有以下几个插件。主要需要用到前面三个,后面的有一些是方便我个人使用,以及因为OS课设需要而安装的。

安装编译工具

我们需要在虚拟机上配置好可用的C++/C环境,要使用以下命令检查Linux虚拟机上是否有安装g++、gdb、gcc等编译调试程序所需的工具:

sudo apt install g++
sudo apt install gdb
sudo apt install gcc

创建工程文件夹

在虚拟机上创建一个文件夹,在vscode上打开,在里面创建.vscode文件夹,然后将下面三个json文件放入.vscode文件夹即可运行简单的程序了。

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++ 生成活动文件",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

搭建好的环境截图

在完成上述步骤之后,即可在该工程文件夹下创建一个test.c文件,运行编译即可成功。

文章作者: 落尘Alko
链接: http://mapleleaf666.vip/?p=327
来源: 落尘Alko的小窝
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇