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

Посмотрите подпроцесс модуль в стандартной библиотеке:

import subprocess
subprocess.run(["ls", "-l"])

преимущество subprocess по сравнению с system состоит в том, что это более гибко (можно добраться stdout, stderr, "реальный" код состояния, лучшая обработка ошибок, и т.д....).

официальная документация рекомендует subprocess модуль по альтернативе os.system():

subprocess модуль предоставляет более мощные средства для порождения новых процессов и получения их результатов; использование того модуля предпочтительно для использования этой функции [ os.system() ].

Заменяющие Более старые Функции с разделом Module подпроцесса в subprocess документация может иметь некоторые полезные рецепты.

Для версий Python прежде 3.5, используйте call:

import subprocess
subprocess.call(["ls", "-l"])

12
задан David Nordvall 17 August 2009 в 10:21
поделиться

4 ответа

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

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

7
ответ дан 2 December 2019 в 21:44
поделиться

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

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

3
ответ дан 2 December 2019 в 21:44
поделиться

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

2
ответ дан 2 December 2019 в 21:44
поделиться

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

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

0
ответ дан 2 December 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: