亲,都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. 『CSP2019初赛后的总结』

    初赛已经过去了,分数大概也已经知道了,接下来的一个月停课应该就是全部准备复赛. 联赛前几次讲课的内容是组合计数,计数\(dp\),字符串,概率期望,数论,数据结构,多数知识点难度都是大于联赛难度的,不 ...

  2. Spring-AOP源码分析随手记(一)

    1.@EnableAspectJAutoProxy(proxyTargetClass = true) 就是弄了个"org.springframework.aop.config.interna ...

  3. Lucene BooleanQuery相关算法

    BooleanQuery对两种不同查询场景执行不同的算法: 场景1: 所有的子句都必须满足,而且所有的子句里没有嵌套BooleanQuery. 例: a AND b AND c 上面语句表示要同时包含 ...

  4. Vue计算属性computed的全面解析

    前言 一直以来对computed这个计算属性都只停在一个大概的认知中,最近特意仔细研读相关资料,亲测后逐渐了解了其特性. 正文 computed 特点: 1.初始化/依赖属性(即data属性)改变时执 ...

  5. Django 练习班级管理系统七 -- 编辑老师列表(二)

    修改 views.py @auth def edit_teacher(request, nid): if request.method == "GET": obj = models ...

  6. gradle入门

    gradle入门 简介: Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于 ...

  7. 如何解决phpMyAdmin缺少mcrypt 扩展

    出现问题:在安装配置phpMyAdmin管理mysql数据库的时候,打开phpMyAdmin登录页面,出现下面的错误提示: 缺少 mcrypt 扩展.请检查 PHP 配置 以CentOS 6.0系统为 ...

  8. 【餐厅】 What kind of food would you like to eat tonight?

    核心句型 What kind of food would you like to eat tonight? 你今晚想吃哪种菜? What would you like to eat ? 你想吃什么? ...

  9. mac os下切换pip3国内源并安装requests库

    在使用Python的时候,经常会用到pip来安装模块,但是默认的下载源实在是特别慢,经常install的时候还会因为速度的原因直接报错,因此我们可以选择将下载源更改为国内的,这样就可以提高我们的下载速 ...

  10. LG1640 「SCOI2010」连续攻击游戏 二分图最大匹配

    问题描述 LG1640 题解 一开始以为是把\((a,b)\)作为左右部点,发现\(n \le 1000000\),建图是\(O(n^2)\)的,会爆掉 属性值向\(i\)建边. \(\mathrm{ ...