MinGW-w64是自由及开放源代码软件开发环境,用于创建Microsoft Windows应用程序。从2005–2008从MinGW(Minimalist GNU for Windows)分支出来。
原作者 | OneVision Software |
---|---|
开发者 | Kai Tietz, Jonathan Yong, 多位GNU贡献者 |
首次发布 | 2005年 |
当前版本 | 8.0.0[1](2020年9月18日 ) |
编程语言 | C, C++ |
操作系统 | Microsoft Windows |
类型 | 编译器 |
许可协议 | 公有领域 (头文件), GNU通用公共许可证 (编译器与工具链), Zope公共许可证 |
网站 | mingw-w64 |
MinGW-w64包括对GCC、GNU Binutils的Windows版本的移植(汇编器、链接器、库文件管理器),一套自由可分发的Windows特定的头文件与静态导入库以使用Windows API,一个 Windows本地版本的GNU的调试器,以及其它多种工具。
MinGW-w64可运行于本地Microsoft Windows平台,"cross-native"在MSYS2或Cygwin。MinGW-w64能生成32-或64-位可执行程序,运行于i686-w64-mingw32
或x86_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)代替DWARF或sjlj
- 一些有用工具如
gendef
,widl
(一个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++、Fortran、Ada。使用了GCC运行时刻库(libstdc++用于C++,libgfortran用于Fortran,等等)。MSYS2提供了LLVM的clang的包装。 支持Windows版ARM(aarch64-w64-mingw32
与armv7-w64-mingw32
)。[7][8]
不同C++编译器(如Mindw-w64 GCC与Visual Studio)产生的二进制可执行程序一般互不兼容,因为使用了不同的ABI与名字修饰导致了C++运行时的差异。但被编译的C代码是链接时兼容的。[9] Clang是个例外,它广泛支持了MSVC的C++ ABI。[10]
参考文献
外部链接
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.