MinGW 作为可靠的 64 位 GCC 编译器

2024-04-20

我担心 64 位 MinGW 编译器作为 Visual C++ 编译器的替代品的可靠性。

例如,假设 C++ 代码使用 GCC 4.6.2 在 Linux 下完美构建和运行,相应的 MinGW 是否会在 64 位 Windows 下生成类似可靠的可执行文件/库?

就可靠性而言,Cygwin 是更好的选择吗?两者都不适合 Visual C++ 编译器吗?


首先,一些误解:

  1. MinGW(.org) 不提供其运行时的 64 位版本。除了 32 位 CRT 之外,MinGW-w64 也可以。他们还致力于 ARM 支持。并支持各种附加 API(Win32 等)。

  2. Cygwin MinGW-w64:Cygwin 不使用 MS CRT (msvcrt.dll)。相反,它会在 Cygwin 应用程序和系统的操作系统库(kernel32.dll、ntdll.dll 等)之间插入 POSIX 兼容层,即 cygwin1.dll。

那么接下来的问题...

我发现 MinGW-w64 编译器非常好,GCC 4.6 及更高版本(实际上是 4.5.1 及更高版本)非常有能力为 Windows 生成良好的 64 位代码。请记住,MinGW 提供的 C API 与 msvcrt.dll 基本相同,因此请访问 msdn.com 获取文档(并且一定要查看“MSVC++ 2003”版本的文档,某些功能与较新的运行时有所不同),不要认为因为是 GCC,glibc 文档突然适用于 Windows。您的代码必须是跨平台的。另请注意sizeof(long)!=sizeof(T*)在 x64 Windows 上。将 *nix 或 x86 Windows 代码移植到 x64 Windows 时经常遇到的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MinGW 作为可靠的 64 位 GCC 编译器 的相关文章

随机推荐