亲,都9102年了,还在用VMware跑嵌入式交叉编译链吗?

  北京时间2019年6月13日,Windows 10发布预览版本18917。版本的主要功能是Linux子系统(windows sub-system linux version 2, 后文简称wsl2)进行了升级,从网上的描述中可以看出,新版的wsl声称引入了完整的Linux内核,意味着我们可以用它来跑docker和i686架构程序(前者在微软官方页面中进行了展示,后者是wsl1所不支持的,因而在此之前嵌入式开发还是只能跑虚拟机或双系统,因为嵌入式编译链32位的居多,比如我使用的hisi的编译链)。

  好,话不多说,我们开始来搭建环境,首先你需要加入预览计划(截至2019年10月,消费者版本还是184xx版本,无法升级为18917),加入方式如下:

  首先是加入预览体验计划:

  重启完成后需要把更新频率调为快,然后去更新界面刷新,就会自动安装预览版本OS了:

  当界面显示“Insider Preview” “vb_release”等字样时,你就快吃上预览版了。

  这个漫长的过程结束之后,我们启用Linux子系统功能,这个步骤大家参考网上的教程即可,例如如何在 Windows 10 中安装 WSL2 的 Linux 子系统

  我引用的这篇文章大家参考第一步和第二步即可,值得一提的是其中有两个地方要说明一下,一是Ubuntu安装好要先运行,方式如下:

还有就是有一行语句他写错了

wsl --set-version Ubuntu> 2

应该是没有这个“>”,即应为

wsl --set-version Ubuntu 2

  待安装好Ubuntu后,我们就可以试着安装交叉编译的工具链并且试着编译了(我使用vscode打开的终端进行后续操作,vscode的默认终端我也设置为wsl了,这样会方便一些):

然后安装32位的库和宿主的工具,使用以下命令:

#宿主开发环境
sudo apt install -y build-essential
#32位库
sudo apt install -y lib32ncurses5 lib32z1
sudo apt install -y lib32stdc++6

当然,你也可以先行替换软件包的源为阿里云,使用下面的语句即可:

sudo sed -i "s/archive\.ubuntu\./mirrors\.aliyun\./g" /etc/apt/sources.list
sudo apt update

  接下来是最重要的一步,为Ubuntu开启32位支持,使用下面的语句。然后在Windows上重启一项服务(相当于重启了Ubuntu,图片中重启方式二选一)

    (ps:似乎其实不需要重启,退出所有wsl的bash就行了)

sudo dpkg --add-architecture i386

然后就是编译成功的好消息:

编译出来的程序,放到机器上就可以运行,下面是我测试截图

使用wsl还有一个好处!就是我们可以使用同步代码在linux里面调试,比如我下面的操作

进一步,我们可以在Ubuntu中调试(由于vscode+wsl支持远程调试,因此说不定你可以使用ide在wsl里调试好代码,然后移植到嵌入式平台)。

使用Windows的Linux子系统搭建嵌入式开发环境的更多相关文章

  1. 【Hadoop】:Windows下使用IDEA搭建Hadoop开发环境

    笔者鼓弄了两个星期,终于把所有有关hadoop的环境配置好了,一是虚拟机上的完全分布式集群,但是为了平时写代码的方便,则在windows上也配置了hadoop的伪分布式集群,同时在IDEA上就可以编写 ...

  2. Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程

     Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程 一.准备工具: QT-SDK for Windows:http://get.qt.nokia.com/qtsdk/qt-sd ...

  3. Windows(WSL2) Linux子系统搭建Docker环境

    摘要:本文主要介绍了如何再Windows(WSL2)中启用Linux系统中,并搭建Docker环境. WSL是适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux ...

  4. 使用eclipse搭建嵌入式开发环境

    下载jdk http://download.oracle.com/otn-pub/java/jdk/7u4-b20/jdk-7u4-linux-i586.tar.gz 下载eclipse-cpp-ga ...

  5. Linux下搭建hadoop开发环境-超详细

    先决条件:开发机器需要联网 已安装java 已安装Desktop组 1.上传安装软件到linux上: 2.安装maven,用于管理项目依赖包:以hadoop用户安装apache-maven-3.0.5 ...

  6. Windows使用Vagrant&VirtualBox搭建虚拟开发环境

    Vagrant 是一款用来构建虚拟开发环境的工具 , 我们可以通过 Vagrant 封装一个 Linux 的开发环境 , 分发给团队成员 ; 成员可以在自己喜欢的桌面系统 Mac/Windows/Li ...

  7. Windows下使用VS2017搭建FLTK开发环境

    环境介绍 系统:win10 64位 IDE:VS 2017 Community FLTK版本:1.3.4-2 下载FLTK 截止到本文编写,FLTK的最新稳定版本是1.3.4-2.我们从官网(www. ...

  8. [Linux] PHP程序员玩转Linux系列-搭建代码开发环境

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...

  9. Windows系统结合MinGW搭建软件开发环境

    MinGW介绍 MinGW,即Minimalist GNU For Windows,它包含了GNU工具集的运行环境.GCC编译器工具集以及其它的GNU程序开发工具(如make.gawk.grep等等) ...

随机推荐

  1. C#,二分法,BinarySearch()

    static int BinarySearch(int[] arr,int key,int low,int high) { low = 0;high = arr.Length - 1; while(l ...

  2. 安卓微信对接H5微信支付出现“商家参数有误,请联系商家解决”的问题处理

    最近遇到客户在对接我们微信支付的时候,一些商家反馈在用户支付的过程中会出现报错,出错的截图如下: 查看微信官方文档如下:https://pay.weixin.qq.com/wiki/doc/api/H ...

  3. Ext.create方法分析

    Ext.create方法实际上是Ext.ClassManager的instantiate的别名 分析如下: (function(Class, alias, arraySlice, arrayFrom, ...

  4. Mac Kafka 环境搭建

    1.安装java 注意:kafka 截止发稿日兼容最高版本为1.8 千万不要安装 更高版本 ,我就是安装了12的发现不支持卸载了重装的

  5. kolla-ansible部署openstack allinone单节点

    环境准备 2 network interfaces 8GB main memory 40GB disk space 1.修改hostname hostnamectl set-hostname koll ...

  6. 简单的基于promise的ajax封装

    基于promise的ajax封装 //调用方式: /* ajaxPrmomise({ url:, method:, headers:{} }).then(res=>{}) */ ;(functi ...

  7. kubernetes CRI 前世今生

    在学习kubernetes的过程中,我们会遇到CRI.CNI.CSI.OCI 等术语,本文试图先通过分析k8s目前默认的一种容器运行时架构,来帮助我们更好理解k8s 运行时背后设计逻辑.进而引出CRI ...

  8. Linux(CentOS)上,安装了Apache(httpd)后,其他的电脑无法访问的原因

    今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.2),然后在windows系统下访问此虚拟机的ip地址,却访问不了. 因为前段时间有知道过iptable的限制, ...

  9. mac下命令行安装node.js及切换不同版本nodejs

    摘自: http://www.cnblogs.com/ikuyka/p/5825762.html 前提是你电脑里已经装了node.js然后才能采用以下命令(以下代码最好不要同时运行) sudo n - ...

  10. halcon笔记1

    * 获得二值图 Image_binread_image(Image, 'C:/Alex/halcon/test.bmp') // 读图 threshold (Image, Regions, , ) / ...