前言
在嵌入式开发中,如果是linux-arm的目标环境,就需要用到交叉编译,很多人使用的都是windows系统,可能大部分都是在虚拟机中安装ubuntu系统,配置好交叉编译链去进行交叉编译,然后再下载到板卡上使用。虽然这样做没什么问题,但是这次公司给的电脑性能太拉跨,使用虚拟机导致电脑经常蓝屏!!!所以没办法,另寻出路直接在windows下安装虚拟子系统进行交叉编译,这样做在编译时的性能,文件互传上都方便了许多。下面介绍一下如何安装。
一、WSL
简单介绍一下,WSL(Windows Subsystem for Linux),适用于 Linux 的 Windows 子系统,分为WSL和WSL2,具体的介绍和区别大家可以自行百度一下,这里不再展开。
二、安装步骤
1.安装wsl
打开win设置界面(我这里的快捷键win+i),在弹出的设置界面中点击更新和安全
点击左边列表中的开发者选项,将开发人员模式打开,默认是关闭的
返回设置主页面,点击应用
点击可选功能
进去后拉到最下面,点击更多windows功能
在弹出的窗口中拉到最下面,将图中所示勾选上。
若所使用的win版本找不到上述图片所指的设置,也可通过cmd命令来实现,打开cmd命令窗口,输入如下指令:
打开win适用于Linux的Windwos子系统功能
dism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
打开win虚拟机功能
dism.exe/online/enable-feature/featurename:VirtualMachinePlatform/all/norestart
完成安装后,需要重启计算机。
2.安装linux系统
重启后,我们打开微软应用商店下载ubuntu系统。
搜索ubuntu,点击下载。我这里安装的是Ubuntu20.04版本
下载完成后,在开始菜单中搜索刚刚下载的Ubuntu并打开,这时会安装系统,安装好后会提示输入用户名和密码,根据自己的需求输入。
3.配置wsl环境
上面是安装WSL的步骤,如果想要配置WSL的分发版本或其他,可以参考此文章https://blog.csdn.net/weixin_45027467/article/details/106862520#11__Linux__Windows__2,这里不再扩展。安装好系统后,我们打开CMD,输入wsl 即可进入我们安装好的ubuntu系统。
这里的/mnt/c即我们win的C盘,如果不想将WSL安装在C盘,也可以换到其他盘中,具体操作可以参考此文章https://blog.csdn.net/farer_yyh/article/details/133934904
接下来我们需要配置当前系统的环境,如下载一些必要的库等:
sudo apt-get update
sudo apt-get install g++
sudo apt-get install cmake (安装cmake)
然后再像使用虚拟机一样配置好我们的交叉编译链即可使用。
4.配置VsCode
VsCode中我们安装一些链接WSL必要的插件:
和平常编程中使用到的一些工具:
安装完毕后点击左下方的图标
我们选择刚刚安装的WSL进行连接,再打开我们的项目文件夹例如/mnt/c/project即可编辑项目工程。
那么如果我们已经配置好了wsl的交叉编译环境,这时我们在VsCode中配置好交叉编译环境:
vscode下,ctrl + shift + p, 输入cmake edit ,选择user-local Cmake kits
在弹出的cmake-tools-kits.json文件中添加编译工具链的路径
再选择对应的编译器
配置好后,我们编写一个CmakeList.txt,点击底部build即可完成对工程的交叉编译。
当然我们也可以直接在CMD中,使用命令行来编译。
以上编译完成后,我们可以直接在win下找到刚刚编译生成的可执行文件,再将文件上传至目标 环境即可运行。
如果安装完wsl后左侧没有出现所示的图标可以直接输入\wsl$来访问。
总结
以上则是在win下使用wsl+vscode来交叉编译linux-arm程序的使用步骤。此为个人经验,如有不正确,请大家指出。