Компилятор mingw — бесплатный компилятор для языка Си
MinGW — это набор бесплатных компиляторов для разработки Windows-приложений.
MinGW — это сокращение «Minimalist GNU для Windows». Набор MinGW включает инструменты для программирования с открытым исходным кодом, которые не зависят от каких-либо платных сторонних библиотек.
Состав MinGW
MinGW включает набор GNU Compiler Collection (GCC), включая компиляторы C, C ++, ADA и Fortran.
Начало GCC было положено Ричардом Столлманом, который реализовал первый вариант GCC в 1985 году.
GCC — это кроссплатформенное программное обеспечение. В настоящее время GCC является лидером по количеству процессоров и операционных систем, которые он поддерживает.
Набор GCC также является главным компилятором для сборки следующих операционных систем: Linux, BSD, ReactOS, Mac OS X, OpenSolaris, NeXTSTEP, BeOS и Haiku.
Главное преимущество использования GCC для компиляции кода под разные платформы в том, если удалось собрать программу для одной из целевых платформ, то велика вероятность, что программа нормально соберётся и для других платформ.
윈도우에서 minGW를 이용한 개발환경구성
Установка и настройка MinGW
В составе сборки Си-экспресс MinGW уже полностью настроен и готов к работе. Достаточно распаковать сборку и можно писать программы.
При необходимости можно изменить настройки компилятора из среды CodeBlocks. Для этого нужно выбрать пункт меню: «Настройки — Compiler…».
Официальный сайт MinGW: www.mingw.org
Официальный сайт GCC: gcc.gnu.org
Похожие записи:
Локальный WAMP-сервер UwAmp
Новая версия Code::Blocks 17.12
Программирование на Delphi. Часть 2. Разработка Android-приложения
Благодарю за материал
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
- Мини-книга «Путь в программисты»
Можно ли стать программистом за год с нуля? Читайте в моей бесплатной мини-книге «Путь в программисты». Скачать бесплатно
Язык Си: установка MinGW и «Hello World» (компилятор gcc)
Источник: progtips.ru
Cygwin или MinGW? Собираем программы для Windows без Windows
Большая часть разработчиков свободного софта работает на Linux или Mac, а вот поддержка Windows обычно реализована по остаточному принципу. Заработало — хорошо, не заработало — пускай портирует тот, кому это нужно. Я покажу, как создавать нативные исполняемые файлы для Windows, не имея этой системы под рукой.
В общем-то, даже в Microsoft уже признали проблему и сделали WSL (Windows Subsystem for Linux), чтобы запускать те приложения, у которых нативных версий под Windows нет. Однако если ты хочешь сделать свою программу доступной для широкой аудитории, то WSL вовсе не панацея, поскольку у среднего пользователя эта система вряд ли установлена и у нативных приложений возможностей для интеграции с Windows все равно больше.
Во многих случаях камень преткновения — не сам код программы, а система сборки. Если ты используешь кросс-платформенные библиотеки и не вызываешь специфичные функции POSIX, портирование может вообще не требоваться. Главное — собрать исполняемые файлы.
Сборка-то обычно и зависит от окружения POSIX. Если ты используешь GNU autotools, то скрипт ./configure у тебя на Bourne shell. CMake и ряд других систем сборки умеют генерировать скрипты под целевую ОС, но остается последняя «маленькая» проблема — нужна проприетарная и не бесплатная ОС. Есть вариант переложить задачу ее развертывания и лицензирования на кого-то другого и обратиться к сервису вроде Appveyor. Но можно вместо этого воспользоваться способностью GCC к кросс-компиляции и собирать программы на хосте с Linux (или macOS).
GNU и Windows
Для сборки программ с помощью GNU toolchain на Windows часто используют два проекта: Cygwin и MinGW + MSYS. У них схожие цели, но разные детали реализации. Давай разбираться.
Cygwin
Cygwin — самая полная реализация окружения GNU для Windows. Он предоставляет большую часть POSIX API в виде библиотеки, что позволяет собирать программы из UNIX без портирования, если только им не требуется семантика UNIX. Яркий пример — демоны, им нужен fork() и сигналы, которых нет в Windows, да и службы Windows устроены совсем иначе.
Кроме библиотеки, дистрибутив содержит набор классических команд UNIX и терминал. Реализации команд используют эту библиотеку и поддерживают некоторые возможности UNIX, такие как регистрозависимые имена файлов.
Целевой способ использования: если нет желания или возможности портировать программу на Windows или использовать только платформенно независимые API, ее можно собрать «под Cygwin», ценой зависимости от cygwin1.dll и относительной изоляции от всей остальной системы.
Многие люди ставили и продолжают ставить окружение Cygwin, чтобы иметь возможность использовать классические команды UNIX на Windows. Некоторые разработчики также включают Cygwin в инструкции для сборки своих программ под Windows, хотя сама программа не связывается с cygwin1.dll . Для этой цели может быть более правильно использовать MSYS.
MinGW и MSYS
Если цель Cygwin — сделать возможной сборку немодифицированных приложений на Windows ценой внешней зависимости, то цель MinGW + MSYS — производить приложения без внешних зависимостей.
MinGW и MSYS — это независимые пакеты, но их часто путают и смешивают друг с другом (а часто путают и с Cygwin). Можно сказать, что MinGW — это эквивалент GCC и binutils, а MSYS — расширенный эквивалент coreutils.
Начнем с MSYS. MSYS — это более «нативная» и легковесная альтернатива Cygwin. Этот пакет включает библиотеку с реализациями функций POSIX, но она предназначена для внутреннего пользования, и авторы категорически не рекомендуют связывать с ней свои приложения.
Библиотека MSYS не реализует UNIX поверх Windows, а следует соглашениям Windows — к примеру, сознательно не учитывает регистр букв в путях к файлам. Главная цель MSYS — предоставить нужные для скриптов сборки программы вроде Bourne shell, make и прочее, что обычно требуется для autotools.
MinGW содержит версии GCC и binutils (ассемблер as, компоновщик ld и так далее), которые производят исполняемые файлы для Windows в формате PE/COFF. Здесь мы и подходим к ключевому моменту: MinGW, как и все остальные части GNU toolchain, такой же платформенно независимый проект.
Кросс-компиляция в GNU toolchain уже давно обычное дело, и в GCC целевая платформа и хост независимы друг от друга. Можно запускать GCC на Linux для x86 и собирать программы для Linux на ARM, или наоборот. Совпадать не обязаны не только рабочая и целевая архитектуры процессора. Точно так же не обязаны совпадать даже ОС и формат исполняемого файла.
Ставим MinGW
Авторы многих дистрибутивов GNU/Linux уже постарались за нас, так что многие кросс-версии GCC, включая MinGW, можно поставить из репозиториев.
Например, в Fedora:
$ sudo dnf install mingw32-gcc $ sudo dnf install mingw64-gcc
$ sudo apt-get install gcc-mingw-w64-i686 $ sudo apt-get install gcc-mingw-w64-x86-64
Если ты используешь macOS, то MinGW можно поставить из Homebrew: brew install mingw-w64 .
INFO
MinGW-w64, несмотря на название, поддерживает и Win32, и Win64. Это форк MinGW, который создали в первую очередь для реализации недостающей в оригинальном проекте поддержки Win64, отсюда и название.
В Fedora также присутствует ряд готовых кросс-версий популярных библиотек, например mingw32-qt .
Hello World
Для демонстрации соберем традиционный hello world. У кросс-версий GCC всегда есть префикс, для MinGW используются префиксы i686-w64-mingw32 и x86_64-w64-mingw32 .
$ cat ./hello.c #include int main(void) < printf(«hello worldn»); >$ i686-w64-mingw32-gcc -o hello32 ./hello.c $ file ./hello32.exe ./hello32.exe: PE32 executable (console) Intel 80386, for MS Windows
Тестирование кросс-компилированных программ для других архитектур — непростая задача, но, поскольку наша целевая платформа — Windows на x86, мы легко можем протестировать их в Wine:
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Источник: xakep.ru
Зачем нужны Cygwin и MinGW?
Я пытался понять, что такое Cygwin и MinGW, и мне это очень запутано. Если вы хотите программировать на C ++, вам не нужен компилятор C ++? Из того, что я прочитал, кажется, что они стремятся предоставить Unix-подобную операционную систему для Windows, но я не вижу значения этого. Я имею в виду, есть ли какая-то причина, по которой C ++ не может быть скомпилирован в Windows? Я также читал, что они содержат библиотеки, потому что основной язык C ++ не поддерживает многие функции, поэтому очень распространенные библиотеки, такие как math.h идти с этим?
Решение
Это объяснение обязательно должно быть записано в другом месте, но здесь все равно идет …
Cygwin — это POSIX-совместимая среда выполнения, созданная поверх Win32 API. Он обеспечивает в значительной степени совместимую библиотеку POSIX C, и вокруг этого есть своего рода «Cygwin Distro» с менеджером пакетов, который позволяет вам установить тонну программ Unix, портированных для запуска под Cygwin. К ним относятся оболочка Unix, GCC (для Cygwin), X, несколько кросс-компиляторов и т. Д.
MinGW (-w64) — это проекты, предоставляющие бесплатные (как в Public Domain) заголовки и библиотеки Win32. Вы можете увидеть это как бесплатную замену заголовков и библиотек в Windows SDK (старой версии). Их можно использовать совместно с GCC. Оба проекта и другие сторонние поставщики предоставляют собственные сборки GCC для Windows, которые вообще не нуждаются в Cygwin. Эти пакеты можно рассматривать как «полную» (до степени полноты MinGW (-w64)) замену Windows SDK.
Обратите внимание, что Cygwin также предоставляет кросс-компиляторы Cygwin для Win32: они работают на платформе Cygwin, но создают собственные исполняемые файлы Win32.
Другой игрок, MSYS, представляет собой облегченный форк Cygwin, который предоставляет только минимальное количество инструментов для запуска сценариев сборки автоинструментов в Windows. MSYS должен использоваться вместе с собственными инструментами MinGW (-w64), это не Cygwin, и вы не можете легко расширить MSYS.
Таким образом, «MinGW (-w64)» часто относится ко всей цепочке инструментов Free Windows GNU (нативной или кросс-компилятор, работающей поверх Cygwin), хотя, строго говоря, это только заголовки и библиотеки.
Чтобы использовать компилятор GCC C ++, я предлагаю вам использовать либо мои пакеты (для создания 32-битный а также 64-битный исполняемые файлы) или MinGW-строит . Кроме того, вы можете установить Cygwin и использовать его setup.exe для установки кросс-компилятора MinGW-w64 и использовать его оттуда, но если вам не нужна почти идеальная эмуляция Unix для сценариев сборки, я бы посоветовал против этого.
РЕДАКТИРОВАТЬ Вы можете знать или не знать, что существует другая альтернатива, старый Interix, который обходит подсистему Win32 и строит прямо поверх ядра NT. Это предусмотрено как Windows Services for Unix или же Subsystem for Unix Applications (доступны для Windows 7 а также Windows 8 а также старые версии Windows ). Это решение доступно для клиентов версии Windows Pro / Ultimate и предоставляет вам наиболее близкую к нативной поддержке Unix, которую вы собираетесь получить. Черт возьми, вы даже можете использовать Visual Studio для отладки программного обеспечения Unix
Другие решения
НОТАЭтот ответ не претендует на то, чтобы быть исчерпывающим, он просто хочет представить простое понимание концепции вне идеологических определений. Использование неточного языка является преднамеренным. Итак, гуру ОС, пожалуйста, не ожидайте идеальных определений.
Разница заключается в корнях POSIX / UNIX и Windows.
POSIX — это программный интерфейс C для операционных систем (среди прочего, таких как Shell и утилиты).
Unix и более поздние версии Linux реализуют такие интерфейсы сами по себе, Windows изначально — нет. У него есть собственный способ управления объектами операционной системы (Win32). Mac OS тоже нет.
GCC — это набор компиляторов, распространенный в системах с интерфейсом POSIX.
Чтобы использовать его в Windows, у вас есть две альтернативы:
- Добавьте в windows библиотеку (код и заголовки), которая добавляет интерфейс POSIX к окнам (перевод вызовов POSIX в вызовы Windows) и портирует все программы GNU (на основе Linux), компилируя их для использования этой библиотеки: это то, что делает Cygwin.
- Перепишите программы POSIX так, чтобы они включали в себя все, что связано с отображением POSIX-Windows, создавая собственный исполняемый файл Windows: это то, чем занимаются MinGW и MSYS.
Бот-методы имеют свои преимущества и недостатки. Короче говоря, в Cygwin, если что-то компилируется в POSIX, это компилируется в Cygwin (по крайней мере, в теории). Но в результате получается Unix-похожая программа, работающая под Windows.
В MinGW вы можете писать собственные программы для Windows (вызывая собственный интерфейс Win32 C), но вы не можете скомпилировать все, используя функции POSIX, которых нет в Windows. Наиболее очевидный случай — отсутствие стандарта интерфейс MinGW и ограниченный служба поддержки.
Источник: web-answers.ru
Установка MinGW/MSYS и настройка окружения для разработчика
Наверное, многие разработчики сталкивались с проблемой выбора или создания окружения для программирования. На мой взгляд, бесплатное окружение на основе порта компилятора gcc (MinGW) и какая-нибудь IDE, совместимая с ним — наиболее приемлемый выбор.
В этой статье я рассмотрю установку компилятора, его интеграцию с интегрированной средой разработки, его настройку, установку и компиляцию сторонних библиотек. Рассмотрю некоторые полезные утилиты для облегчения сборки исходного кода и системы контроля версий файлов.
Статья со временем будет обновляться и дополняться.
Данный мануал создавался с целью быть пособием и заметкой для разработчиков, помочь им собрать и настроить собственное окружение для разработки нативных приложений в семействе OS Windows.
Содержание:
1. Установка и настройка тулчейна MinGW/MSYS и дополнительного ПО
Давайте разберемся, что такое MinGW, а что такое MSYS и для чего они нужны.
MinGW — сокращение от «Minimalist GNU for Windows», по своей сути MinGW является небольшой и лаконичной средой разработки нативных приложений для семейства OS Microsoft Windows.
MinGW предоставляет полный набор Open Source инструментов для программирования, который подходит для разработки нативного Windows приложения, которое не будет зависеть от C-Runtime библиотек каких-либо третьих сторон.
MinGW поддерживает идею минимализма, поэтому он никогда не будет полностью поддерживать среду исполнения POSIX, для развертывания POSIX приложений на Windows, для их полной поддержки существует Cygwin. В первую очередь MinGW предназначен для использования разработчиками, которые привыкли работать с компилятором gcc.
MinGW включает в себя:
- Порт GNU Compiler Collection (GCC), который включает в себя компиляторы таких языков, как: C, C++, ADA и Fortran.
- Порт GNU Binutils для Windows (as, ld, ar)
- Консольный установщик (mingw-get) для MinGW и MSYS
- Графический установщик (mingw-get-inst)
MSYS — сокращение от «Minimal SYStem», это порт командной оболочки Bourne Shell (sh) для Windows. Он предлагается в качестве альтернативы «cmd.exe» от Microsoft’а. Оболочка хорошо подходит для портирования существующих приложений и библиотек, которые есть в *nix системах и включает в себя небольшой выбор портов инструментов Unix, облегчающих задачу портирования.
Комбинация MinGW и MSYS предоставляет разработчикам небольшую независимую среду, которая может быть легко загружена на съемные носители, не требуя добавления записей в файлы реестра.
Полезные ссылки:
Официальный сайт MinGW
Вики по MinGW [ENG]
Жмем «Next» и соглашаемся с лицензией, снова «Next», и теперь выбираем путь для установки:
Рекомендуется выбирать путь без пробелов, лучше всего устанавливать MinGW в корень диска, т.е в «C:MinGW». Я выбрал «C:QtMinGW», так удобнее будет подключить MinGW к IDE QtCreator. Если вы планируете дальше интегрировать свой тулчейн в какую-нибуть IDE, сделайте аналогично и нажмите «Next». Необходимость наличия группы ярлыков в меню «Пуск» — по вашему желанию. Но можно не создавать (отметив галочкой «Don’t create a Start Menu folder) и нажать «Next».
Выбираем следующие пакеты:
- C Compiler
- C++ Compiler
- MSYS Basic System
- MinGW Developer ToolKit
затем подтверждаем установку выбранных пакетов кнопкой «Install».
Откроется консольное окно, в котором будет отображаться процесс скачивания и установки пакетов. Проследите, чтобы процесс выполнялся без ошибок (например, если будут недоступны сервера репозитория, необходимо повторить попытку установки с этими же параметрами позже) и дождитесь завершения процесса.
Теперь необходимо добавить в переменную окружения PATH путь до директории «C:QtMinGWbin». Делается это следующим образом (для Win7, для остальных систем по аналогии):
1.1.1.1. Нажмите правой клавишей мышки на ярлык «Компьютер» и кликните на пункт меню «Свойства».
1.1.1.2. Кликните слева на пункт «Дополнительные параметры системы», в появившемся окне нажмите кнопку «Переменные среды».
1.1.1.3. В верхнем списке переменных найдите переменную «Path», кликните на нее два раза для редактирования.
1.1.1.4. Добавьте путь до директории «bin». В моем случае это будет «C:QtMinGWbin», разделение путей выполняется символом «;».
1.1.1.5. Подробнее можно прочесть здесь.
Все, тулчейн MinGW и его оболочка MSYS установлены. Теперь можно перейти к установке дополнительных программ, которые помогут облегчить нам жизнь.
1.1.2. Установка дополнительных пакетов и полезные команды и утилиты.
Сразу после установки MinGW и MSYS будет полезно установить некоторые пакеты.
Для этого запускаем файл «C:QtMinGWmsys1.0msys.bat», для которого, кстати, полезно будет создать ярлык, и набираем там такие команды (переход на новую строку аналогичен нажатию клавиши «Enter»):
mingw — get install msys — man
mingw — get install msys — wget
mingw — get install msys — zip
mingw — get install msys — unzip
mingw — get install msys — bzip2
mingw — get install msys — perl
Команда «mingw-get install» аналогична популярной на разных Linux-дистрибутивах, наверное, знакомой многим, команде «apt-get install». Обе эти команды скачают и установят вам нужный пакет из репозиториев.
Список доступных пакетов для установки можно посмотреть по команде «mingw-get show», для лучшего восприятия его можно отсортировать следующим образом:
mingw — get show | grep «Package: »
Удалить установленный пакет можно командой «mingw-get remove выбранный_вами_пакет»
Обновить пакет можно командой «mingw-get upgrade выбранный_вами_пакет», команда «mingw-get upgrade» обновит все пакеты вашего тулчейна полностью.
На этом базовая настройка тулчейна закончена, можно приступить к сборке/переносу проектов или более тонкой настройке.
1.1.3. Какие утилиты будет полезно использовать вместе с MinGW?
Для редактирования исходников и других файлов можно использовать консольный редактор «vim», который идет в комплекте с MinGW’ом.
Но если вы привыкли к оконному интерфейсу, воспользуйтесь отличнейшим редактором — Notepad++.
Для распаковки содержимого архивов можно использовать консольные команды или архиваторы с GUI, такие как WinRar, например.
Лично я рекомендую использовать 7-zip.
1.1.4. Что можно почитать?
Список литературы можно найти здесь: http://www.linuxcenter.ru/
Основы работы в консоли
Интерпретатор командного языка shell
Самые необходимые команды *nix для обработки ввода/вывода
Совет по поводу определения fstab
Еще бы, работать в такой консоли достаточно неудобно, хотя бы из-за отсутствия нормального копипаста.
Но к счастью, есть такой проект как ConEmu от Maximus5‘а, являющийся продвинутым форком ConEmu by Zoin.
ConEmu — это очень удобный и симпатичный терминал, поддерживающий вкладки. Его подробнейшее описание, написанное самим автором этой программы, можно прочитать здесь. Самым главным преимуществом для меня является нормальный копипаст.
Здесь он реализован просто замечательно, с помощью левой кнопки мышки или сочетания «Alt + Левая кнопка мышки» можно выделить блок или строку в консоли соответственно. После выделения строка сразу автоматом скопируется в буфер. Сочетание клавиш «Ctrl + V» или клик левой клавишей мышки вставляет первую строку из буфера, а «Shift + Insert + Enter» вставляет сразу все строки.
Для связки ConEmu и MinGW, нам необходимо скачать специально подготовленные пакеты ConEmu для MinGW. Установка весьма проста и тривиальна — нужно лишь распаковать «-mingw32» и «-mingw64» пакеты в корневую папку компилятора (в моем случае это «C:QtMinGW»).
Если вы не хотите настраивать консоль, можете скачать уже настроенную мной:
Скачать ConEmu.zip, 1.7 MB
Выглядит она следующим образом (изображение кликабельно):
И устанавливается абсолютно аналогично.
На мой взгляд панелька в стиле терминала Quake, выезжающая сверху экрана по нажатию «Ctrl + ~», не только эффектно выглядит, но и очень удобна в использовании.
При желании, конечно, можно все очень и очень гибко настраивать под себя, программа ConEmu имеет множество настроек и совместима со всеми последними OS семейства Windows.
Источник: exlmoto.ru
MinGW 0.6.2-beta
MinGW (Minimalist GNU for Windows) – набор компиляторов и подпрограмм для разработки, который изначально создавался для операционной системы GNU, и адаптирован для ОС семейства Windows.
В проект MinGW входят компоненты:
- GCC – набор компиляторов для языков программирования C, C++, Ada, Фортран, Java, Objective-C, Objective-C++.
- Binutils – комплект утилит для работы с объектным кодом скомпилированных программ: dlltool (создание библиотек dll), ld (линковщик), gprof (анализ работы программы), as (ассемблер), windres (компиляция ресурсов Windows) и другие.
- Make – программа для автоматизации процесса компиляции.
Между MinGW и Cygwin есть существенные различия. Minimalist GNU for Windows не ставит задачи построения слоя Posix. При распространении программ, написанных с использованием Cygwin, требуется открытие исходного кода под совместимой лицензией, что чаще всего бывает невозможно. MinGW использует вызовы Windows API.
Осуществляя разработку с помощью данного набора, нет необходимости в переносе всей среды на другой ПК. Поэтому полученную программу можно выпускать под своей лицензией, в том числе проприетарной.
Особенности Minimalist GNU for Windows:
- Бесплатный набор компиляторов для OS Windows;
- Работает на платформе x86, x64;
- Генерация быстрого и качественного объектного кода;
- Несколько режимов оптимизации.
Комплект входит в состав некоторых IDE, например Qt Creator. Также MinGW можно использовать отдельно с целью написания или компиляции кросплатформенных программ.
mingw-get-setup.exe
Скриншоты
Для полного комплекта мы рекомендуем вам также скачать OpenSSL (библиотеки криптографии).
Похожие программы
Java 8 Update 45
CH341A v1.34 / v1.30
Java SE Development Kit (JDK) 8, 9, 11
Resource Hacker 5.1.7
Turbo Pascal 7.1
MSXML 4.0 SP3 Parser
AVRDUDE_PROG 3.3
КуМир 2.1 / 1.9
dnSpy 6.1.7
Windows PowerShell 3.0
Источник: www.softslot.com