Windows使用vscode连接Linux虚拟机编写C/C++程序 | 您所在的位置:网站首页 › linux编程用的什么编辑器啊 › Windows使用vscode连接Linux虚拟机编写C/C++程序 |
文章目录
前言一、安装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 打开虚拟机,在终端命令行上敲入:sudo apt-get install openssh-server进行安装。(事实上我的Ubuntu系统在安装的时候就已经连带了ssh) 此外,在服务器还需要敲入ifconfig命令,记录下虚拟机IP地址。(如下图,我的虚拟机IP是192.168.40.128) 因为选择的windows10最新版本应该是自带了openssh的客户端服务的,所以不需要安装 三、连接虚拟机重新打开vs code,发现vs code界面左下角多了一个绿色的小标,可以点击进行远程连接。
点击确认,如果一切正常,没有弹窗警告,便成功用vs code连接上虚拟机了。 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)成功生成公钥与私钥: 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同目录。 在使用vs code远程编写代码时,如果需要使用扩展功能,提升编程体验,最好安装上一些本机也有的扩展,比如下图。 因为vs code它本身不是一个IDE,而是一个编辑器,但是它强大的地方在于可以添加各种各样的插件,这些插件让它工作起来就像集成的IDE一样。 而在SSH上安装了C++的扩展启用之后,会发现这么一件事(下图): sudo apt install g++ sudo apt install gdb sudo apt install gcc 下图是所安装的插件: 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" }
如果配置的是内网服务器的话,和配置虚拟机的步骤是一样的。 五、踩坑记录我一开始配置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 实验室设备网 版权所有 |