VSCode 远程开发关键插件
在VSCode的Extensions中搜索远程开发必备插件 remote development,该插件包括几种不错的插件,比如Remote-SSH,Remote-Containers,Remote-WSL等,其中本章节介绍的主要是Remote-SSH相关操作。(不骗大家,其余几种我暂时还没有好好使用过,若以后使用,则后续补充吧。)
一. 远程操作相关配置
如下图所示,将remote development插件安装好之后,在选项栏中会多一项,该项目主要是远程登陆的涉及的账户和浏览记录等。比如我的账户apaki,在主目录下有一个c文件夹,用于远程开发我的项目。(@o@)
使用Ctrl+Shift+P,输入Remote-SSH:Add New SSH Host,来添加一个新的远程账户。(当然了,也可以直接点击上图中的"加号"来添加一个新的远程账户)
随后添加配置文件config,目录可以直接按照软件默认目录即可。一般都是在~/.ssh/config,该文件的相关配置如下:
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host apaki
HostName xxx.xxx.xxx.xxx (这里是您的远程账户的IP)
User apaki
当然了,SSH默认port是22,您也可以通过该文件进行自己配置,此处就不多说了。
二. 远程登陆
经过上述配置之后,您就可以通过该账户进行登陆了。在登陆成功之后,您使用open打开的文件夹,则是远程文件夹,如下图所示。
随后就可以开开心心的进行远程开发了。
三.常见问题
- 提示说远程主机不支持SSH,好吧。若是遇到这种情况则需要您现在远程主机上配置SSH相关服务。配置方式网上可以搜到很多,此处就不再赘述了。若懒的搜索,也可以直接查看如下链接的教程。
- 提示说无法建立,或者path不正确等。则可能是如下原因,一个是您的电脑上没有安装过ssh相关软件,比如git,SecureCRT等。(我电脑两者都有,所有不用重复安装了),当然了其他的支持ssh服务的软件也可以。
若您有相关软件但是依然提示错误,则可以通过everything等软件,搜索一下您电脑中是否存在ssh.exe文件,将该文件路径添加到如下的settting中即可。
// 如下的配置在 Ctrl+Shift+P,输入Remote-SSH:Setting中。 - 一般情况下都要把setting中的如下选项勾选一下
- 在插件管理那个选项中,可以看出。安装完remote development之后,插件管理被分成了2个部分。下面的SSH那个,表示的是远程可能需要用到的插件,比如python插件,若远程也安装之后,则可以远程进行调试。若本地有该插件,但是远程中没有,则远程操作只能通过命令行的方式运行,而无法单步调试。(本人远程主要用于开发c和python,因此安装了如下两个插件)
VSCode开发调试工程配置
一. python开发配置
这个比较简单,就不多说了。安装了python插件之后,选择好相关的python解析器即可。
二. C开发tasks工程配置
在vscode自带的工程编译和调试方式,涉及如下两个文件,一个是tasks.json,另一个是launch.json。
其中tasks主要是用于代码build,gcc编译添加一些关键参数,以及多文件工程中,添加相关源文件使用。(具体方式不做声明,vsc默认生成的配置文件,我估计开发人员看几眼基本就知道怎么修改了)
而launch文件主要是配置调试,比如gdb等,还有stopAtEntry,以及很关键的一个参数:preLaunchTask(该参数要和tasks中的label相对应,否则在调试之前无法进行编译等操作),以及program参数(最终运行的程序路径和名称)
三. C开发makefile工程配置(这个是我常用的方式)
为什么要单独分出这么一栏来专门说明呢,是因为一般开发的时候工程管理直接使用makefile文件了,因此此种方式比较常用。不依赖于某个编译器。
话不多说了,直接上图
// 这个是我tasks.json中的配置,配置好之后,则可以通过软件的选项:
// 终端->运行任务 中,选择build和clean了。不用每次都去输入make clean等命令了
{
"tasks": [
{
"type": "shell",
"label": "build",
"command": "/usr/bin/make",
"args": [
"-f",
"makefile"
],
},
{
"type": "shell",
"label": "clean",
"command": "/usr/bin/make",
"args": [
"clean"
],
}
],
"version": "2.0.0"
}
// 关于launch.json文件,别的我就不多说了。
// 主要介绍一个参数,preLaunchTask,对应的值在tasks文件中,也即build
// 因为上述的tasks中的label也被我修改过,并非默认的。
// 因此该launch文件也需要做相应的修改,否则可能在(Ctrl+)F5之前无法进行
// 自动编译
{
"version": "0.2.0",
"configurations": [
{
"name": "gcc debug",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/demo",
"args": [
"main.c"
],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
对比
之前我采用的方式是:
- linux客户端直接安装vscode,进行操作。(好吧,因为之前使用的VMWare,安装vscode偶尔会很卡)
- git本地修改好代码之后,上传到远程,随后再使用SecureCRT等工具在远程客户端继续编译。(当然了,这样比较慢,不过有git log)
- 在linux系统中直接使用vim开发,当然了,我水平有限,vim也只能但文件操作。多个文件的工程,我就用的不是那么顺手了。
相对于以上方式:VSCode Remote Development 我认为有以下特点:
- 优点
- 远程代码直接同步,并且vscode自带终端,方便随时修改查看等
- 远程调试也很方便,结果直接在终端输出
- 对于windows和linux交叉编译的情况,更加方便了。不用一边写代码,一边去查找相关函数了。因为vscode包含相关头文件之后,可以自动填充呀。(&.&)
- 缺点
- 对于网络有一定的要求(>o<)
当然了,若您有更好的方法,也可以提出来互相学习一下。嘿嘿