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。
电脑操作系统
- 电脑系统一键重装 电脑系统一键重装软件排行榜
- win10一键还原和重装系统 win10一键还原和重装系统
- 开机按f12怎么重装系统 电脑按f12怎么重装系统
- 大白菜一键重装系统 大白菜一键重装系统怎么样
- u盘重装win10系统步骤 u盘重装win10步骤知乎
- win7官方纯净版系统 win7纯净版系统哪个最好
- win10系统安装教程 win10系统安装教程u盘怎么制作
- 电脑系统坏了怎么修复 电脑系统坏了怎么修复
- 最干净的一键重装系统 一键重装系统哪个好知乎
- 新手自己用u盘怎么装系统 怎样从u盘安装系统到
- win7怎么升级到win10系统 win7怎么升级到win10系统不
- u盘启动盘怎么装系统 u盘启动盘怎么装系统dell
- 电脑死机 电脑死机重启无法开机
- 电脑数据恢复 电脑数据恢复软件免费版破解版
- 怎么看电脑型号 怎么看电脑型号配置
- 手机怎么连接电脑 手机怎么连接电脑热点共享网