发散
没想到学习LVGL的第一步,竟然是介绍工具链和虚拟环境吧?哈哈,工欲善其事必先利其器,了解自己的使用工具将事半功倍。先想想,我们的工具大概都运行在哪里?大概就三个:windows、UNIX、Linux。编译出来的程序运行在哪里?大概有四个:windows、UNIX、Linux、嵌入式硬件。也就是说,在windows、UNIX、Linux(大概率都是X86)上运行的程序,直接在其之上部署好开发工具,然后开发就好了。而嵌入式硬件(ARM、RISC-V、PPC、MIPS)上运行的程序,则需要在其它平台上部署开发工具,为啥?因为嵌入式硬件一般连操作系统都没有哇。。。即使有,受限于硬件,大概率也没有丰富的资源让你部署开发工具。因此,交叉工具链环境,就是需要的了。
大概总结了一下,主要有以下需要了解:
- Cygwin
- msys以及msy2
- minGW与MinGW-w64
- WSL
- TDM-GCC
- 各版本工具链
TDM-GCC是个啥
tdm-gcc官网:tdm-gcc (jmeubank.github.io)
tdm-gcc衍生自 MinGW 和 MinGW-w64 的项目,分为 32 位与 64 位两个版本,32 位版本的编译目标仅兼容 32 位应用程序,64位版本的编译目标兼容 32 位应用程序与 64 位应用程序,最新的官方二进制版本为 GCC 10.3.0。
所以,怎么说呢,就是个windows上的gcc编译器,编译出来的程序可以在windows上运行,可以认为是MinGW 和 MinGW-w64 的儿女,但很可能青出于蓝而胜于蓝!
非常建议,学习C语言时,选择她。
其它版本工具链
其它版本工具链大概率就是交叉工具链了,在win或者linux上运行,但编译出来的程序则是运行在嵌入式硬件上,如ARM、RISC-V等架构的硬件。