我担心 64 位 MinGW 编译器作为 Visual C++ 编译器的替代品的可靠性。
例如,假设 C++ 代码在使用 GCC 4.6.2 的 Linux 下完美构建和运行,相应的 MinGW 是否会在 64 位 Windows 下生成类似可靠的可执行文件/库?
就可靠性而言,Cygwin 是否是更好的选择?既不是 Visual C++ 编译器?
最佳答案
首先是一些误解:
MinGW(.org) 不提供其运行时的 64 位版本。除了他们的 32 位 CRT 之外,MinGW-w64 也是如此。他们还在致力于 ARM 支持。并支持各种额外的 API(Win32 和其他)。
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 提供与 msvcrt.dll 本质上相同的 C API,因此请访问 msdn.com 获取文档(并务必查看“MSVC++ 2003”版本的文档,一些功能因较新的运行时而有所不同),不要认为因为它是 GCC,glibc 文档突然适用于 Windows。您的代码必须是跨平台的。另请注意 x64 Windows 上的 sizeof(long)!=sizeof(T*)
。将 *nix 或 x86 Windows 代码移植到 x64 Windows 时经常遇到的错误。
关于c++ - MinGW 作为可靠的 64 位 GCC 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9942923/