轻松玩转树莓派Pico之三、Windows+Ubuntu虚拟机模式下VSCode C语言开发环境搭建
目录
1、VSCode下载与安装
2、VSCode基础插件安装
3、SSH连接与配置
4、SSH免密登录
5、Pico编译
工欲善其事,必先利其器。之前的介绍的Pico流程都是通过命令行编译,没有进行更深入的介绍,本文将介绍Pico的VSCode-C语言开发环境搭建与配置。
VS Code全称Visual Studio Code,是微软研发的一款免费、开源的轻量级代码编辑器,支持语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比等特性。软件跨平台,可在 Win、Mac 以及 Linux桌面上安装运行。内置了对 JavaScript、TypeScript 和 Node.js 的支持,同时可通过插件支持包括C/C++、C#、Java、Python、PHP、Go等几乎所有编程语言。
嵌入式开发进行交叉编译,较多采用GCC编译器,从事嵌入式开发又无法完全脱离Windows系统,所以较多开发方式采用的是Windows主机+VMware安装Ubuntu虚拟机的开发方式。在Windows下编辑代码,在Linux下编译代码。
本文通过VSCode提供的一系列插件,搭建C语言开发/交叉编译环境。
1、VSCode下载与安装
在VSCode官网Visual Studio Code - Code Editing. Redefined选择对应的操作系统进行下载,当前开发模式选择的是Windows操作系统。
安装完成后,点击桌面上的“Visual Studio Code”即可运行。
2、VSCode基础插件安装
就像大多数 IDE一样,VSCode 也有一个扩展和主题市场,包含了数以千计质量不同的插件。可在VSCode“扩展”/“Extensions”页面中选择需要的插件。
下面推荐几款C/C++开发中常用的插件:
1)Remote-SSH (Microsoft):当前开发模式下必须安装
允许您使用任何带有SSH服务器的远程计算机作为开发环境。
安装完插件之后,VSCode 就具备了连接远程主机的能力。在左下角有个符号 >< ,点击它就能选择连接哪个远程主机。连接上了之后,会重新开一个窗口,左下角也会显示。
这里顺便提一下,微软一共发布了三款远程连接的插件:
- Remote - Containers
- Remote - SSH
- Remote - WSL
名字上也很容易区分,就是支持连接容器,SSH主机,WSL子系统。
安装完成后VSCode会增加“远程资源管理器”
2)C/C++ (Microsoft):C语言开发必须安装
该插件对以下工具功能增强
- 跳转到定义;
- 代码自动补全;
- 查找代码引用;
- 列举 symbols;
3)CMake(twxs):在VSCode上支持CMake语法,打开/编写CMakeLists文件关键字提示
4)CMake Tools (Microsoft):CMake编译工具条
5)Python(Microsoft):在VSCode上支持Python语法及调试
6)Serial Monitor (Microsoft):串口收发插件,可在VSCode全流程搞定嵌入式开发、调试
这几个插件基本上都是Microsoft官方出的,质量有保障。其他插件可以根据个人开发习惯安装(我没安装其他的。。。装多了会导致VSCode每次打开加载时间过长),这几个插件基本可以满足日常C、Python开发需要。
VSCode插件默认的安装位置是C:\Users\用户名\.vscode\extensions,下载成功的插件都在该目录下。
3、SSH连接与配置
上一节讲到VSCode插件Remote-SSH可支持连接SSH主机,这样就可以通过安装在Windows下的VSCode,使用SSH连接至Linux主机,进行各种Linux命令操作。
VSCode安装完成后,需要进行以下配置:
1)Ubuntu下安装ssh-server及编译工具,输入命令:
sudo apt install -y net-tools openssh-server
2)获取Ubuntu的ip地址,输入命令:
ifconfig
记录下对应的IP地址
3)打开VSCode远程资源管理器,在“REMOTE”->“SSH”一栏中点击“+”
4)输入Ubuntu的IP,并按回车键进入下一步
5)选择c:\Users\用户名\.ssh\config作为ssh配置文件,
6)依次输入如下内容并保存:
Host:Ubuntu对应IP地址
HostName:可自定义为Host对应的名字,如Ubuntu-20.04
User:Ubuntu对应的用户登录名
7)连接远程主机
- 选择远程主机类型
- 输入远程主机登录密码,密码为Ubuntu对应登录用户的密码
按照以上流程即可登录Ubuntu主机了。
8)在终端中切换到对应的目录,并输入code .即可打开对应目录,在资源管理器中看到该目录结构。
4、SSH免密登录
依照步骤3完成SSH连接配置后,每次打开VSCode都要输入密码,是不是觉得有些麻烦。。。接下来我们配置SSH免密登录。
1)在Windows下打开PowerShell,并输入ssh-keygen -t rsa
按照提示,一路回车到结束。
在用户目录c:\Users\用户名\.ssh(.ssh为隐藏目录)下已经生成了ida_rsa.pub文件,将该文件复制至ubuntu下。
如何复制文件到Ubuntu下?
- 使用samba方式,可参考:ubuntu下samba 安装与配置_杭州_燕十三的博客-CSDN博客
- 使用共享文件夹方式,可参考:VMware下 Ubuntu16共享Windows10文件_杭州_燕十三的博客-CSDN博客
2)在Ubuntu命令行下也执行ssh-keygen -t rsa,流程同Windows。
3)在Ubuntu下执行
cat id_rsa.pub >> ~/.ssh/authorized_keys
再次打开VSCode远程资源管理器,点击对应的host,就不需要输入密码了。
5、Pico编译
参考前文“轻松玩转树莓派Pico之一、新手上路”,搭建Pico交叉编译环境,并在终端中输入:
mkdir build && cd build
cmake .. && make -j4
完成编译
轻松玩转树莓派Pico之三、Windows+Ubuntu虚拟机模式下VSCode C语言开发环境搭建相关推荐
- ubuntu 14.04下 horizon openstack_dashboard 的开发环境搭建
序:公司要在openstack的基础上,做开发做产品,网上资料也不是很多,很多都是在来回copy,在此做个blog,慢慢更新,推动自己进步. 首先老话题:开发环境的搭建. 一个纯净的ubuntu系统 ...
- 【教程】Windows下Miniconda+Pytorch+Pycharm开发环境搭建指南
Windows下Miniconda+Pytorch+Pycharm开发环境搭建指南 给本科生写的新手教程,遇到很多新手的共性问题,可供大家参考.在开始阅读之前,请注意两个要关键:1.为什么要使用Con ...
- 《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记
最近想尝试一下在IBM Bluemix上使用Node.js创建Web应用程序,所以需要在本地搭建Node.js Web的开发测试环境. 这里讲的是Windows下的搭建方法,使用CentOS 的小伙伴 ...
- Windows Server 2012 +WDK7600.16385.1+VS2008驱动开发环境搭建
这个配置相较与Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建 要简单的多,不需要每次创建驱动工程时配置这么多的参数 下载WDK开发安装包,我已经 ...
- Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建
本帖通过Augusdi的一篇博文进行重新总结 第一步:安装Visual stdio 2010 1.安装VS2010 第二步:安装WDK安装包 2.安装WindowsDriverKit7-GRMWDK_ ...
- Ubuntu 下无人机飞控 ArduPilot 开发环境搭建
Ubuntu 下无人机飞控 ArduPilot 开发环境搭建 Ubuntu 下无人机飞控 ArduPilot 开发环境搭建 操作流程 升级安装包 安装 git 克隆代码 安装交叉编译工具链 将编译器添 ...
- 轻松玩转树莓派Pico之一、新手上路
目录 1.开发板介绍 2.芯片介绍 3.环境搭建 (1)sdk/example下载 (2)文档下载地址 (3)交叉编译器安装 4.编译example 5.运行example 1.开发板介绍 树莓派-P ...
- android4.4源码下载 windows,android4.4_android4.0 x86笔记本安装及开发环境搭建_android4.4源码下载...
Android 4.0让手机和平板电脑最终走到了一起,这是多么唯美的一件事,其实不仅仅有手机和平板,甚至连PC也与他们同路.日前Android for x86放出了最新的Android 4.0版,这也 ...
- 【学习OpenCV4】案例1:Windows OpenCV C++语言开发环境搭建
本文的案例内容源自于图书**<学习OpenCV 4:基于Python的算法实战>**,该书是国内第一本完整介绍OpenCV4的图书,第一章有在各个平台搭建环境的介绍,后面每个章节都有对模块 ...
最新文章
- HTML5 Audio/Video 标签,属性,方法,事件汇总 (转)
- 网络推广——网络推广专员浅析新站应该如何提升长尾关键词的排名
- Problem executing scripts APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/lib/command-not
- Asp.net之MsChart控件动态绑定温度曲线图
- SAP Fiori UI上关于时区Timezone的一些问题和解决方案
- jzoj1370-飞船【RMQ初见】
- python通过内置函数测试对象类型_Python的内置函数
- HNOI2010——弹飞绵羊(lct)
- C++ OpenCV 问题
- ATAT的安装bug在centos7--换了个其他集群安装确没有问题(可能和系统的配置相关)
- 个性化头像生成——微信小程序开发
- kodi资源_手把手教您设置KODI播放器,3分钟打造家庭影院级媒体库,流畅播放NAS里的原盘电影!...
- 阿里云商标注册流程是怎么样的(注册步骤详细教程)
- linux里sh命令是做什么的?详解!
- 【文文殿下】ExBSGS
- 《信息化项目文档模板四——系统建设方案模板》
- win10运行安卓模拟器蓝屏崩溃
- QCon上海2015盛大开幕
- java 牛客网之[动态规划 简单]NC3 nico和niconiconi
- 分析波卡与以太坊2.0有什么不一样的地方?