Раньше просто компилировал с помощью g++
на Ubuntu, вытягивая компилятор с помощью пакетного менеджера:
$ sudo apt-get install g++
$ g++ -o main.a main.cpp
Или на Windows с помощью различных IDE, внутри которых, как мне говорили, стоит MinGW.
Сейчас хочется просто, используя внутреннюю консоль в Окнах, компилировать нативно под них самих же. Почитал про Cygwin и про MinGW, понял, тащемта, что к чему, но остались пробелы - не совсем ясно что мне нужно.
Можно ли подробно, а лучше очень просто, узнать о каждой возможности скомпилировать под Окна?
Cygwin - это попытка перенести UNIX окружение в Windows, а MinGW (или современный вариант MinGW-w64) сосредоточен только на компиляторе GCC.
Далее, при компиляции программы с помощью Cygwin, по условиям его лицензии вы будете линковаться с его динамической библиотекой cygwin1.dll
и таскать её всюду за собой, в то время, как с MinGW, вы будете зависеть только от стандартных MSVC библиотек (по-умолчанию от msvcrt.dll
).
Поскольку MinGW это только компилятор, то есть отдельный проект - MSYS2 который поставляет облегчённую/минимальную версию UNIX окружения в достаточном объёме, чтобы вести разработку почти как в UNIX (там есть bash
, git
, curl
и т.д.). Причём, утилиты для MSYS2 собираются при помощи MinGW.
Про отличия MinGW от Cygwin можно ещё почитать:
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Почему gcc компилирует этот код для стандарта GNU C++, но не компилирует для GNU C++11?
Часто вижу, что выражение, которое возвращает return, заключено в круглые скобкиНапример, в хедере set в Visual Studio 2015 во всех функциях, возвращающих...
Есть две машины на Linux, подключённые к одному Wi-Fi роутеруНужно реализовать на них эхо-сервер на C\C++
Начал изучать c++Может кто подробно объяснить чем отличаются эти варианты инициализации? Когда что вызывается и т