Почему Mingw существует?

MSYS и UNIX-подобные системы сборки отдельно; почему Mingw существует? Я имею в виду, почему win32/64 не является еще одной целью, доступной в «ванильном GCC»? Есть ли для этого технические причины или они «политические»? Мне кажется, что в платформе Windows нет ничего особенного, что сделало бы перенос на нее GCC «несовместимым» с оригинальным GCC.


person David Nordvall    schedule 17.08.2009    source источник
comment
Какой очень экзистенциальный вопрос. Может быть, поэтому все эти обедающие философы всегда слоняются вокруг.   -  person NoMoreZealots    schedule 19.08.2009


Ответы (4)


Mingw — это не только компиляторы, но и библиотеки и заголовочные файлы (и любые другие вспомогательные файлы, которые вам могут понадобиться).

GCC - это просто компилятор. Mingw — это полноценная среда.

person Matthew Iselin    schedule 17.08.2009
comment
GCC — это набор компиляторов. - person PetrosB; 17.08.2009
comment
Означает ли это, что я могу загрузить исходный код GCC, скомпилировать компилятор, ориентированный на win32/64, и скомпилировать с его помощью код (за исключением отсутствия библиотек и заголовков)? - person David Nordvall; 17.08.2009
comment
Вы можете создать компилятор, который будет создавать PE-файлы, поэтому все, что вам действительно не хватает, — это библиотеки и заголовочные файлы, чтобы иметь возможность делать с ними что-то полезное. Вы также пропустите такие вещи, как CRT0. - person Matthew Iselin; 17.08.2009

MingW предназначен для простого переноса приложений Posix на Windows. Это просто «более тонкий» слой, чем CygWin, поэтому не все может работать там, где слишком разные окна. CygWin позволяет обеспечить достаточную изоляцию, чтобы запускались даже инструменты сценариев для создания и генерации кода.

Редактировать: Microsoft очень любит создавать собственные стандарты и хочет размещать собственный бренд на вещах, для которых уже существуют открытые стандарты. то есть OpenGL -> DirectX, Java -> .net, OpenCL — это следующий стандарт, от которого они хотят отказаться. Это делает их немного болезненными для не спонсируемых проектов, чтобы поддержать их в качестве цели. Они всегда отказывались от всего, что позволяет легко кросс-платформенную разработку, потому что они хотят, чтобы вы разрабатывали свое приложение только для этой ОС. Это маркетинговая стратегия, контролировать бренд, контролировать платформу и делать так, чтобы людям было больно поддерживать другие операционные системы. MingW требуется, потому что GCC может генерировать код x86, но даже самая базовая поддержка времени выполнения отличается от операционных систем на основе Posix.

person NoMoreZealots    schedule 17.08.2009

ну, хотя вы можете использовать кросс-компилятор для создания бинарных кодов win32/64 из GCC, кто-то должен портировать все библиотеки времени выполнения C. И Mingw, и Cygwin созданы для этой цели.

person oscarkuo    schedule 17.08.2009

С основного сайта MinGW

Предлагаемый в легко устанавливаемом формате двоичного пакета для собственного развертывания в MS-Windows или созданный пользователем из исходного кода для межхостингового использования в Unix или GNU/Linux, пакет использует стандартные системные библиотеки Microsoft для обеспечения C-Runtime и Windows. API.

person PetrosB    schedule 17.08.2009