Windows使用vscode连接Linux虚拟机编写C/C++程序 您所在的位置:网站首页 进入虚拟机 Windows使用vscode连接Linux虚拟机编写C/C++程序

Windows使用vscode连接Linux虚拟机编写C/C++程序

2024-01-28 17:53| 来源: 网络整理| 查看: 265

文章目录 前言一、安装vs code1. 下载安装vs code2. 安装vs code 插件 二、配置虚拟机1. 确保虚拟机的ssh服务可用2. 记录虚拟机IP3. PC机Windows10 三、连接虚拟机四、完善远程连接Linux编程体验1. 免密连接虚拟机2. 在远程主机上安装扩展3. Linux下vs code C++程序的编译执行4. 服务器配置 五、踩坑记录总结

前言

我是一枚学生党,目前想要深入学习在Linux,也为了方便编写C/C++程序。而笔记本电脑性能一般,虚拟机开着桌面版得Linux卡得要死,服务器版的Linux看着黑乎乎的窗口完全无感,因此打算使用vs code远程连接Linux虚拟机进行学习。

为了防止自己以后还要再配置,重复踩坑,因此写下这篇博客,记录vs code远程连接虚拟机的步骤。

环境:windows10、VMware软件、Ubuntu 20.10服务器版

一、安装vs code 1. 下载安装vs code

进入官网https://code.visualstudio.com/下载,傻瓜式安装,注意一下软件安装位置即可。

2. 安装vs code 插件

安装完成后,打开vs code。在vs code 的扩展里面分别搜索安装①C/C++ ②C++ Intellisense ③Chinese(中文插件,如果有需要的话) ④Remote-ssh 在这里插入图片描述

二、配置虚拟机 1. 确保虚拟机的ssh服务可用

打开虚拟机,在终端命令行上敲入:sudo apt-get install openssh-server进行安装。(事实上我的Ubuntu系统在安装的时候就已经连带了ssh) 在这里插入图片描述 确认服务器的ssh服务是打开的: 在这里插入图片描述

2. 记录虚拟机IP

此外,在服务器还需要敲入ifconfig命令,记录下虚拟机IP地址。(如下图,我的虚拟机IP是192.168.40.128) 在这里插入图片描述

3. PC机Windows10

因为选择的windows10最新版本应该是自带了openssh的客户端服务的,所以不需要安装

三、连接虚拟机

重新打开vs code,发现vs code界面左下角多了一个绿色的小标,可以点击进行远程连接。

在这里插入图片描述 点击后出现如图下的窗口,选择第一个即可: 然后选择 Add New SSH Host… (如果你是第一次连接的话……) 在这里插入图片描述 之后需要输入ssh指令,此处按照提示,输入“ssh 用户名@虚拟机IP”,如下图: 在这里插入图片描述 输入完毕之后,点击确认下一步,选择保存SSH配置文件的路径,这里默认选择第一个就好。 在这里插入图片描述 点击确认之后,vs code右下角会弹出添加host成功的信息,可以选择打开查看,文件内容如下图所示。其中,Host是服务器名称,随便是什么都行,HostName是你的虚拟机IP,User是你虚拟机的用户名。 在这里插入图片描述 叉掉这个文件,再次点击 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 此时出现需要你输入密码的输入框,此时输入虚拟机上系统的密码即可。 在这里插入图片描述

点击确认,如果一切正常,没有弹窗警告,便成功用vs code连接上虚拟机了。 在这里插入图片描述 成功连接了虚拟机后,这时,可以选择vs code的打开终端功能使用终端,该终端是连接虚拟机的终端,用起来和服务器版本的Linux一模一样,并且还可以在vs code里面打开源文件编辑,调试。 在这里插入图片描述

四、完善远程连接Linux编程体验 1. 免密连接虚拟机

SSH是通过RSA非对称加密算法完成的,具体细节感兴趣的朋友可以上网搜索。总之,我们需要免密连接虚拟机的话,是需要配置公私钥对的。 首先,我们在Linux虚拟机上生成密钥(可以通过vs code连接的终端,也可以用回虚拟机自身的命令行窗口)。 1)在终端上输入命令:

ssh-keygen

2)随后输入密钥保存的路径(默认继续按确认键即可):

Enter file in which to save the key (/home/XXX/.ssh/id_rsa):

3)输入密码(直接按确认键则密码为空):

Enter passphrase (empty for no passphrase):

4)再次输入密码确认(密码为空则继续按确认键):

Enter same passphrase again:

5)成功生成公钥与私钥: 在这里插入图片描述 6)接下来输入以下指令,来为虚拟机生成公钥。

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

7)随后,我们可以直接通过vs code远程连接虚拟机,打开文件夹,直接将生成的私钥id_rsa下载到主机中。 在这里插入图片描述

8)将下载到主机的id_rsa私钥文件挪到C:\Users\XXX.ssh\目录下,也就是SSH连接配置的config同目录。 在这里插入图片描述

2. 在远程主机上安装扩展

在使用vs code远程编写代码时,如果需要使用扩展功能,提升编程体验,最好安装上一些本机也有的扩展,比如下图。 在这里插入图片描述

3. Linux下vs code C++程序的编译执行

因为vs code它本身不是一个IDE,而是一个编辑器,但是它强大的地方在于可以添加各种各样的插件,这些插件让它工作起来就像集成的IDE一样。 而在SSH上安装了C++的扩展启用之后,会发现这么一件事(下图): 在这里插入图片描述 这个错误的原因是因为我们还没有配置vs code的json文件,也就是配置C++的工程文件。 但是,在配置C++工程文件之前,最好先检查Linux虚拟机上是否有安装g++、gdb、gcc等编译调试程序所需的工具。

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

下图是所安装的插件: 在这里插入图片描述 首先,我们需要创建工程文件夹,在工程文件夹下创建.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

{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "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" }

在这里插入图片描述 如果需要了解更多上面工程文件的细节,可以去搜索 linux下vs code C++的配置。

4. 服务器配置

如果配置的是内网服务器的话,和配置虚拟机的步骤是一样的。

五、踩坑记录

我一开始配置SSH的时候,vs code死活连不上虚拟机,并且网上搜索到的文章也对不上我的问题。 最后我自己测试的时候发现一个问题: 主机ping虚拟机超时。 虚拟机ping主机IP没问题。 利用主机windows的cmd命令窗口,键入ipconfig发现居然没有虚拟机vmware的IP地址,最后是通过重装了vmware来解决问题的。 希望我踩的这个坑的经验能帮到人吧。

总结

对于初学者,从windows的集成IDE转到Linux,这个vs code远程连接的方法十分不错,唯一麻烦的或许就是一开始的配置了。 就我目前看来,在vs code上通过终端操控Linux还没有发现什么明显不同于虚拟机Linux自身命令的区别。也就是说,这个方法集合了Linux服务器编程的高效和vs code图形界面的优点,是个很棒的学习与工作环境。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有