2015-06-10 3 views
4

Я знаю, что для своего класса мне пришлось установить cygwin, чтобы запустить IDE NetBeans, но я вижу параметры во время установки как для g ++, так и для gcc, и я не уверен, что они такие же или нет, а где же wingw? это другой компилятор, и если да, то зачем выбирать другого?Связь между gcc, g ++, cygwin и wingw?

ответ

4

g ++ и gcc - компилятор gnu C++ и C соответственно. Тем не менее, они представляют собой один и тот же компилятор с разными флагами.

MinGW является «Минималистский Gnu для Windows». Это порт компилятора gnu для работы в Windows.

Cygwin - это еще один порт компилятора gnu (и других других утилит) для Windows. Точнее (IMO, во всяком случае), он оставляет компилятор/программы, запущенные на POSIX, и переносит уровень POSIX для работы в Windows.

Что касается выбора между ними: если вы используете Linux, вы, скорее всего, захотите получить пакет gcc/g ++ для дистрибутива, который вы используете.

Если вы используете Windows, это будет зависеть от ваших намерений. Cygwin хорошо работает для переноса существующего кода Linux/POSIX на Windows. Если, однако, вы планируете писать код и просто хотите компилятор, я бы вместо MinGW.

Еще одно примечание: MinGW на MinGW.org не обновлялся годами. Если вы решите пойти с MinGW, я бы посоветовал получить его с nuwen.net (обновляется довольно регулярно).

1

В зависимости от того, что вы строите;

  • gcc предназначен для программ на C.
  • g ++ предназначен для программ на C++.

Я не слышал о крыле.

2
  1. GCC компилирует: .c/.cpp файлы как C и C++ соответственно.
  2. g ++ скомпилирует: .c/ .cpp файлы, но все они будут обрабатываться как файлы C++.
  3. Также, если вы используете g ++ для связывания объектных файлов, он автоматически связывает ссылок в библиотеках std C++ (gcc этого не делает).
  4. gcc Скомпилированные файлы C имеют менее предопределенные макросы.

Для wingw, вы имели в виду mingw? Потому что MinGW совместим с Windows. MinGW использует GCC/G ++, а MinGW не является компилятором, это в основном лишенная версии Cygwin, которая использует MS libs везде, где это возможно.

Смежные вопросы