Loading... # 第一集 在各种开发环境中反复横跳并莫名惨死 # 前言 记录在嵌入式平台Linux下开发过程中,如同邯郸学步,踩过的那些个坑。 ## 开发 系统:win10 编辑器:vs code,使用ssh插件远程接入ubuntu虚拟机 ## 编译 系统:ubuntu虚拟机,通过win10 vmware部署 ## 运行 系统:ubuntu,嵌入式平台 ## 问题 不清楚是宽带、DNS还是其他原因,经常性无法访问github,很是难受。 # Qt能否? 相较于各种平台、开发环境和开发语言,本人其实更熟悉Qt一些。 于是就开始了折腾。 ## 预期目标 在windows下进行开发调试,再通过虚拟机搭建的交叉编译环境编译目标嵌入式平台程序,再进行部署。将大部分工作放在熟悉的windows系统下。 ## 虚拟机中安装 Qt creator 这个简单,Qt官网下载相关安装包,通过ftp传入虚拟机,安装即可。 ## 搭建交叉编译环境 这个其实也不太难,Qt官网下载源码包,通过ftp传入虚拟机,在mkspace文件夹设置好对应平台的构建文件,在配置好需要构建的模块,执行构建、安装即可。 交叉编译器也可通过百度获取apt install 的包名,一条指令搞定。 ## MQTT 这是个头疼的点。 QtMqtt,直到目前6.0.2发布,都未集成到Qt中。需要从github下载源码,自行编译部署。 然而,由于自己对Qt 项目树 结构不熟悉,源码中各种.pro和.pri相互包含,在windows上始终编译不过。 反复来回折腾N回后,放弃。 (中间还因虚拟机硬盘空间不够,进行扩展硬盘,又是一顿折腾) ## 总结 Qt 其实算是一个可供选择项,其跨平台API的一致性、QString、容器、类型间相互转换以及QVariant都是个非常不错的工具。 通过静态链接,Qt编译后的空控制台程序,大小在3M左右,占用资源不多。 # .net 5 饭否? 在.net 5面世后,互联网上闹得沸沸扬扬的。如果能使用.net 5平台来构建应用,岂不是所有由虚拟机和ubuntu带来的问题不就不复存在了嘛?想想就很美。 ## 预期目标 在windows上通过宇宙第一IDE进行开发调试,完成后打包部署到嵌入式平台。 ## 环境搭建 一通搜索,确实发现微软有发布 .net 5 arm 的 SDK,果断下载、安装。 ## 测试 于是开始了折腾,创建一个c# .net 控制台程序,编译,发布到arm,(集成运行时)。 心里还是有点窃喜的,爽啊,这么简单!!! 准备将程序上传到嵌入式系统里面,结果一看,怎么文件有180M左右!! 估计是debug模式,引入了各种安全检查和符号信息? 那我切换到release模式吧!一通操作下来,还有150M左右,Are you kidding me ? ......开始了自我和对整个世界的怀疑 ...... 一顿观察下来,发现IDE发布界面,还有个高级选项:单文件发布、裁剪不需要的库!!!! 好吧,我out了。 立马开干,结果发现最终程序只有10.9M了,先啥也不管,试试在嵌入式能否正常跑起来。 当看到熟悉的“Hello,world!”几个大字出现在屏幕上,顿时松了口气。 ## 第三方库的支持 由于.net 5问世不久,外加.net 最近发布的版本太多,导致第三方库(比如MQTT)支持并没有很好的跟上步伐。 ## 总结 看到.net 5能在嵌入式上运行起来,还是蛮开心的。类型安全(不必在各种莫名的segmentation fault汪洋中,迷失)、语法糖、异步同步编程快捷等等。 然而,.net 5目前来看构建发布的程序包(集成运行时)还是有点过大,同时其裁剪也只是试用阶段,并不是那么稳定出色。 期待.net 6 release版本的问世。 最后修改:2021 年 03 月 26 日 06 : 38 PM © 允许规范转载