本文介绍: 但与 Cygwin 的大而全不同,MSYS 是冲着小巧玲珑的目标去的,所以整套 MSYS 以及 MinGW,主要以基本的 Linux 工具为主,大小在 200M 左右,并且没有多少扩展能力。MSYS2,由于 MinGW 万年不更新,MSYS 更是,Cygwin的许多新功能 MSYS 没有同步过来,于是 Alex 等人建立了新一代的 MSYS 项目使用 mingwgcc 编译目标文件原生的,而使用 msys2-gcc 编译目标文件依赖于 msys-2.0.dll 提供的虚拟 POSIX 环境。…

发散

没想到学习LVGL的第一步,竟然是介绍工具链和虚拟环境吧?哈哈,工欲善其事必先利其器,了解自己使用工具将事半功倍。先想想,我们工具大概都运行在哪里?大概就三个:windows、UNIX、Linux编译出来的程序运行在哪里?大概有四个:windows、UNIX、Linux嵌入式硬件。也就是说,在windows、UNIX、Linux(大概率都是X86)上运行程序,直接在其之上部署开发工具然后开发就好了。而嵌入硬件(ARM、RISC-V、PPC、MIPS)上运行的程序,则需要在其它平台部署开发工具,为啥?因为嵌入硬件一般连操作系统没有哇。。。即使有,受限于硬件,大概率没有丰富的资源让你部署开发工具。因此,交叉工具环境,就是需要的了。

大概总结了一下,主要有以下需要了解:

  1. Cygwin
  2. msys以及msy2
  3. minGW与MinGW-w64
  4. WSL
  5. TDM
  6. 版本工具

msysmsys2

msys2官网MSYS2

Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本bashmake等等。与Cygwin大致相当。MinGW 本身仅代表工具链,而MinGW 开发者曾经比较旧的 Cygwin 创建一个分支,也用于提供类 Unix 环境。但与 Cygwin 的大而全不同,MSYS 是冲着小巧玲珑的目标去的,所以整套 MSYS 以及 MinGW,主要以基本的 Linux 工具为主,大小在 200M 左右,并且没有多少扩展能力。

MSYS 是用于辅助 Windows 版 MinGW 进行命令行开发的配套软件包,提供了部分 Unix 工具以使得 MinGW 的工具使用起来方便一些。如果不喜欢庞大的 Cygwin,而且使用不多,可以试试。不过喜欢完整体验、不在乎磁盘占用等等,还是推荐 Cygwin 而不是 MSYS。

MSYS2,由于 MinGW 万年不更新,MSYS 更是,Cygwin的许多新功能 MSYS 没有同步过来,于是 Alex 等人建立了新一代的 MSYS 项目。仍然是 fork 了 Cygwin(较新版),但有个更优秀的包管理器 pacman,有活跃的开发者用户组,有大量预编译软件包(虽然肯定没有Cygwin多)……对于不喜欢庞大的 Cygwin 的用户而言,推荐试试 msys2。

MSYS2是一个工具和库的集合,为您提供了一个易于使用的环境,用于构建安装运行本地 Windows 软件。它由命令行终端 mintty、 bash版本控制系统(如 gitsubversion)、工具(如 tarawk)甚至构建系统(如 autotools)组成,所有这些都基于修改后的 Cygwin 版本。尽管其中一些核心部分基于 Cygwin 的,MSYS2的主要重点是为本地 Windows 软件提供一个构建环境,使用 Cygwin 的部分保持在最低限度。MSYS2为 GCC、 mingw-w64、 CPython、 CMake、 Meson、 OpenSSL、 FFmpeg、 Rust、 Ruby 等提供了最新本机构建。

msys2存在的意义:

  1. 提供了一个易于使用的环境,用于构建、安装和运行本地 Windows 软件
  2. 简单体验终端linux命令

MinGW与MinGW-w64

MinGW-w64官网MinGW-w64

Mingw-w64是最初 Mingw.org 项目一个进步,创建该项目是为了支持 Windows 系统上的 GCC 编译器。为了支持64位和新的 API,它在2007年分叉了它。从那时起,它得到了广泛的使用和分布。

MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。以上是 MinGW 的介绍,MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序

说白了MinGW就是一个运行于windows下的,并且编译出的程序也是可以运行于windows下的GNU工具链。

MinGW的功能

  1. 编译windows程序
  2. 编译运行在windows上的交叉工具链

区别与差异

MSYS2 和 MinGW 都提供 gcc,但是属于两个完全不同的工具链。前者属于 msys2-devel ,后者属于 mingw-w64-$archtoolchain

使用 mingw-gcc 编译的目标文件是原生的,而使用 msys2-gcc 编译的目标文件依赖于 msys-2.0.dll 提供的虚拟 POSIX 环境。这么说来,msys2和cygwin更像,基本上是cygwin的缩小版。

原文地址:https://blog.csdn.net/xuxuluo/article/details/126216648

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_31692.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注