posix win32(POSIX、Cygwin、MSYS、MSYS2、MinGW、MinGW-w
对于习惯了Linux上GCC编译器的朋友来说,总想在Windos上复制他们的经验,于是出现了各种方法将GCC编译器移植到Windos上的方法,那么哪种方法更好一些呢?这些方法之间又有什么联系呢?
POSIX
POSIX可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX 标准定义了操作系统应该为应用程序提供的接口标准,是 IEEE 为要在各种 UNIX 操作系统上运行的软件而定义的一系列 API 标准的总称,其正式称呼为 IEEE 1003,而国际标准名称为 ISO/IEC 9945。POSIX 标准意在期望获得源代码级别的软件可移植性。换句话说,为一个 POSIX 兼容的操作系统编写的程序,应该可以在任何其它的 POSIX 操作系统(即使是来自另一个厂商)上编译执行。
Cygin
Cygin是运行于Windos平台的POSIX"子系统",提供Windos下的类Unix环境,并提供将部分 Linux 应用“移植”到Windos平台的开发环境的一套软件。
Cygin官网https://.cygin./
MSYS和MSYS2
MSYS,全称Minimal GNU(POSIX)system on Windos,是一个小型的GNU环境,包括基本的bash,make等等,可以看做是Cygin的迷你版。
由于MSYS 常年不更新,于是 Alex 等人 在 Cygin的基础上创建了MSYS2。
MSYS2 包含了一些工具和库,为您提供易于使用的环境,用于构建、安装和运行本机 Windos 软件。
它由一个名为 mintty 的命令行终端、bash、git 和 subversion 等版本控制系统、tar 和 ak 等工具,甚至 autotools 等构建系统组成,所有这些都基于 Cygin 的修改版本。尽管其中一些核心部件基于 Cygin,但 MSYS2 的重点是为本地 Windos 软件提供构建环境,并且将使用 Cygin 的部件保持在最低限度。 MSYS2 为 GCC、ming-64、CPython、CMake、Meson、OpenSSL、FFmpeg、Rust、Ruby 等提供最新的本机构建支持。
MSYS2提供了一个Arch Linux 用户非常熟悉的,名称为 Pacman 的软件包管理系统。它带来了许多强大的功能,例如依赖项解析和简单的完整系统升级,以及直接和可复制的包构建。我们的软件包存储库包含 2000 多个可以立刻安装的预构建软件包。
MSYS2安装包中包含了Ming-64。
MSYS2官网https://.msys2./
MinGW
MinGW 的全称是Minimalist GNU on Windos 。它实际上是将Linux下的编译器 GCC 移植到了 Windos,并且包含了 Win32 API ,可以将源代码编译为可在 Windos 中运行的可执行程序。它还可以使用一些 Windos 不具备的,Linux平台下的开发工具。一句话来概括MinGW 就是 GCC 的 Windos 版本 。MinGW只能用于构建32位应用程序。
MinGW项目目前已经接近停止。
MinGW官网https://sourcefe./projects/ming/files/
Ming-64
MinGW基本上停止开发,且只能编译生成32位可执行程序。2007年为了支持64位应用程序开发和新的Windos API,从MinGW分叉而出。MinGW-64 支持编译 64位 和 32位 可执行程序。
下载地址https://sourcefe./projects/ming-64/files/
Ming-64官网https://.ming-64./
x86_64和x64表示AMD64位处理器架构,可以运行32位和64位应用程序,现在的PC处理器基本上都是这种架构。
i686也是32位指令系统。
in32和posix指的是操作系统API,in32指的是Windos API,Linux和Unix操作系统则使用posix。开发Windos程序使用in32更好,开发Linux程序使用posix更好。
SJLJ和SEH指的是异常处理机制
DWARF : DWARF-2 (DW2) EH,需要使用 DWARF-2(或 DWARF-3)调试信息。 DW-2 EH 会导致可执行文件轻微膨胀,因为大的调用堆栈拆解表必须包含在可执行文件中
setjmp/longjmp (SJLJ)。 基于 SJLJ 的 EH(异常处理) 比 DW2 EH 慢得多(在没有异常时甚至更加缓慢),对于没有使用g编译的代码或者没有用堆栈的代码,它也可以工作。
Structured Exception Handling (SEH)(结构化异常处理) Windos 使用自己的异常处理机制。
对于Windos平台,选择x86_64-in32-seh无疑更好一些
TDM-GCC
衍生自 MinGW 和 MinGW-64 的项目,分为 32 位 和 64 位两个版本,32 位版本的编译目标仅兼容 32 位应用程序,64位版本的编译目标兼容 32 位应用程序与 64 位应用程序,最新的官方二进制版本为 GCC 10.3.0。
官网https://jmeubank.github.io/tdm-g/
,如果你只想尝试一下g,那么建议选择Ming-64,如果你还想尝试一下Linux下的各种工具软件,那么可以尝试Cygin。
电脑操作系统
- 乌鲁木齐佑玛壁挂炉24小时服务热线
- 江门热水器故障码E1-江门电热水器E1故障
- 阳春热水器显示故障码维修-阳春热水器故障码
- 珠海靖江燃气灶厂家服务热线
- 许昌洗衣机厂家服务热线—— 400统一服务中心
- 珠海衢州热水器售后服务电话—— 全国统一人工
- 温岭洗衣机24小时服务电话—全国统一人工【7X
- 扬州中央空调24小时电话多少-扬州中央空调官方
- 郑州米特拉空气能售后维修服务中心—— (7X2
- 长春溧阳壁挂炉售后服务电话
- 泰安集成灶全国各市区售后24小时服务热线
- 江阴洗衣机维修售后售后400中心电话
- 长春呼和浩特壁挂炉售后服务电话-全国统一人工
- 苏州维修空调电话-苏州维修空调电话号码是多少
- 庄河集成灶售后维修服务电话-全国统一人工【
- 新余洗衣机服务24小时热线—全国统一人工【7X