嵌入式开发麻烦就麻烦在开发环境、编译环境和运行环境不同(vim大神请关闭此页面)。我之前一直采用samba+小乌龟+source insight+secureCRT进行开发。最近换了个公司,公司扔给我一个华为云让我自己鼓捣开发环境。在华为云上安装samba服务器后防火墙整死弄不成功。最后偶然间在vscode上找到了出路,它的各种插件现在已经非常强大,服务器仅需要开发ssh端口即可完成所有嵌入式开发工作。
ssh-远程开发
上面说的samba和secureCRT的功能在vscode中仅remote-SSH插件即可替代。
安装及配置
在vscode的扩展中搜索remote就会出现remote-SSH。
安装好后左边菜单会出现如下图标
进入该选项后点击右边齿轮图标。
选择第一个,输入如下配置
输入完成后远程主机列表中多出一项,点击右侧新建一个窗口连接远程主机。
如上图,根据提示输入即可。
连接成功,编码
如上图,可以将远程主机的目录添加到工作区,即可在vscode上直接编辑远程主机上的文件。你可以右键来将远程目录从工作区中添加和删除(并不会真的在远程主机上删除该目录,若你真要这么做,右键非顶层目录然后选择delete permanently(永久删除))
终端命令行
点击terminal/new terminal会在下方打开一个远程主机的终端。可在这上面进行远程操作。
无密码配置
没有进行无密码配置的时候,每次连接终端和将目录添加到工作区都需要输入密码。配置过后仅输入一次密码,以后就不需要密码了
win+R输入cmd打开weindows终端,输入
ssh-keygen -t rsa
然后一直回车生产密钥对(笔者没有输入任何内容,在不同主机生产秘钥不同)。
将生成的id_rsa拷贝到本地主机~/.ssh/(“~”表示用户路径,如C:\Usid_rsa.pubers\admin)。将id_rsa.pub拷贝到远程主机,然后将其内容拷贝进~/.ssh/authorized_keys的后面(“~”表示用户目录,若为root,则“~”为“/root/”)。
阿里云的ubuntu 16.04用上述步骤有误,具体参考https://blog.csdn.net/snfdess/article/details/122870231
c语言开发
开发过程中需要使用的vscode插件需要安装到远程主机上,在配置ssh之前安装的插件需要点击如下按钮安装到远程主机上。
配置ssh之后安装插件会自动安装到远程主机上。之后在不同的本地主机上连接同一台远程主机,不需要重复安装插件。
开发c语言基础插件如上图笔者已经安装到远程主机上的插件。这两款插件可以提供查找定义和引用,代码补全等基本功能。
以上内容整理自这个链接,它还推荐了一些其他的好用的插件。
版本控制
vscode支持git,svn等版本控制工具,笔者使用的svn,以下对svn的使用进行简单介绍。
安装如下插件
安装成功后左边菜单栏会出现一个大s图标
点击后可以查看已经在工作台打开的目录的svn记录等。
途中圈出来的按钮为vscode的版本控制菜单,蓝色小圈内的11代表有11个文件或目录改动,在红线上的框内输入log后 ctrl+ enter即可选择文件进行commit。在该界面右键还有revert操作。
至于check out只能在终端中进行。
使用过程中的一些设置
- 开发linux随时会有头文件找不到报错,看着实在不爽。可以在设置中搜索includepath然后添加头文件目录
- 可以设置每次打开终端时的路径,减少cd到工作路径的操作。
设置搜索cwd