MinGW-w64

MinGW-w64自由及开放源代码软件开发环境,用于创建Microsoft Windows应用程序。从2005–2008从MinGW(Minimalist GNU for Windows)分支出来。

MinGW-w64
原作者OneVision Software
開發者Kai Tietz, Jonathan Yong, 多位GNU贡献者
首次发布2005年2005
当前版本
  • v11.0.1 (2023年4月29日)[1]
编程语言C, C++
操作系统Microsoft Windows
类型编译器
许可协议公有领域 (头文件), GNU通用公共许可证 (编译器与工具链), Zope公共许可证
网站mingw-w64.org

MinGW-w64包括对GCCGNU Binutils的Windows版本的移植汇编器链接器库文件管理器),一套自由可分发的Windows特定的头文件静态导入库以使用Windows API,一个 Windows本地版本的GNU调试器,以及其它多种工具。

MinGW-w64可运行于本地Microsoft Windows平台,"cross-native"在MSYS2Cygwin。MinGW-w64能生成32-或64-位可执行程序,运行于i686-w64-mingw32x86_64-w64-mingw32目标平台。

历史

2005年, OneVision Software遵照净室设计原则,开始开发MinGW-w64,因为最初的MinGW项目更新太慢,迟迟不支持64位环境开发。2008年,OneVision捐献这个项目给开源社区。[2][3][4]

MinGW-w64提供了更全面的Win32 API支持,[5]包括:

  • 更好的C99支持
  • POSIX线程 (pthreads)支持
  • GCC multilib, 允许同时安装32位与64位库
  • Unicode入口点 (wmain/wWinMain)
  • DDK (来自ReactOS)
  • DirectX (来自Wine)
  • 大文件支持
  • Win64支持
  • 在x86-64(从gcc 4.8+)上,结构化异常处理(SEH)代替DWARFsjlj
  • 一些有用工具如 gendefwidl (一个MIDL编译器来自Wine)

MinGW-w64还维护winpthreads,一个包装库类似于pthreads-win32, 实现了C++11线程库<thread>, <future>, <mutex>

MSYS2

MSYS2 ("minimal system 2")是用于Microsoft Windows的软件发布与开发平台,基于MinGW-w64与Cygwin,把Unix环境中的代码移植到Windows。[6]

编译器

GCC支持的大多数编程语言也被MinGW-w64移植支持。包括C、C++Objective-C、Objective-C++、FortranAda。使用了GCC运行时刻库(libstdc++用于C++,libgfortran用于Fortran,等等)。MSYS2提供了LLVMclang的包装。 支持Windows版ARM(aarch64-w64-mingw32armv7-w64-mingw32)。[7][8]

不同C++编译器(如Mindw-w64 GCC与Visual Studio)产生的二进制可执行程序一般互不兼容,因为使用了不同的ABI名字修饰导致了C++运行时的差异。但被编译的C代码是链接时兼容的。[9] Clang是个例外,它广泛支持了MSVC'的C++ ABI。[10]

参考文献

  1. https://www.mingw-w64.org/changelog/#v1101-2023-04-29.
  2. . MinGW-w64 Wiki. [2016-02-18]. (原始内容存档于2019-07-05).
  3. Marshall, Keith. . MinGW-dvlpr (邮件列表). 19 July 2009 [12 June 2014]. (原始内容存档于2020-01-28). However, we would require a formal audit of mingw-64 code, to ensure conformance with our requirements for truly open documentation of sources, before [merge of mingw-w64] could be completed.
  4. Tietz, Kai. . MinGW-dvlpr (邮件列表). 20 July 2014 [12 June 2014]. (原始内容存档于2020-01-28).
  5. . MinGW-w64.org. [30 May 2013]. (原始内容存档于2019-10-18).
  6. MSYS2: official homepage 页面存档备份,存于, code repository 页面存档备份,存于
  7. . MSYS2 Packages. [12 February 2020]. (原始内容存档于2020-10-30).
  8. Storsjö, Martin. . 23 April 2020 [2020-06-02]. (原始内容存档于2020-11-29).
  9. . [2020-06-02]. (原始内容存档于2020-11-30).
  10. . Clang 11 documentation. [2020-06-02]. (原始内容存档于2021-01-26).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.