MinGW как надежный 64-битный компилятор GCC - PullRequest
5 голосов
/ 30 марта 2012

Я беспокоюсь о надежности компилятора MinGW для 64-битных систем, как альтернативы компилятору Visual C ++.

Например, при условии, что код C ++ прекрасно собирается и работает под Linux с использованием GCC 4.6.2, будет ли соответствующий MinGW создавать аналогично надежные исполняемые файлы / библиотеки под 64-битной Windows?

Является ли Cygwin лучшим вариантом с точки зрения надежности? Не для компилятора Visual C ++?

1 Ответ

14 голосов
/ 30 марта 2012

Во-первых, некоторые заблуждения:

  1. MinGW (.org) не предоставляет 64-битную версию своего времени выполнения.MinGW-w64 делает, в дополнение к их 32-битной CRT.Они также работают над поддержкой ARM.И поддерживают различные дополнительные API (Win32 и другие).

  2. Cygwin <-> MinGW-w64: Cygwin не использует MS CRT (msvcrt.dll).Вместо этого он вставляет слой совместимости POSIX между вашим приложением Cygwin и системными библиотеками ОС (kernel32.dll, ntdll.dll и т. Д.), А именно cygwin1.dll.

К вопросу тогда ...

Я нашел компиляторы MinGW-w64 очень хорошими, и GCC 4.6 и выше (фактически 4.5.1 и выше) очень способны производить хороший 64-битный код для Windows.Пожалуйста, помните, что MinGW предоставляет по существу тот же C API, что и msvcrt.dll, поэтому перейдите на msdn.com для документации (и обязательно посмотрите версию документации "MSVC ++ 2003", некоторые функции отличаются от более новых сред выполнения), недумаю, что, поскольку это GCC, документация glibc неожиданно применима к Windows.Ваш код должен быть кроссплатформенным.Также обратите внимание, что sizeof(long)!=sizeof(T*) на x64 Windows.Часто встречающаяся ошибка при переносе кода * nix или x86 Windows на x64 Windows.

...