В чем разница между g ++ и gcc?

Можно использовать ниже, чтобы получить UTF8 без спецификации

$MyFile | Out-File -Encoding ASCII
783
задан JamesFromIT 28 August 2018 в 00:46
поделиться

5 ответов

gcc и g++ драйверы компилятора Компилятора GNU Набор (который был когда-то давно просто компилятором C GNU ).

Даже при том, что они автоматически определяют, какие бэкенды (cc1 cc1plus...) для вызова в зависимости от типа файла, если не переопределено с -x language, у них есть некоторые различия.

, вероятно, наиболее важное различие в их значениях по умолчанию - против каких библиотек они связываются автоматически.

Согласно онлайн-документации GCC опции и ссылки, как g ++ вызывается , g++, эквивалентны gcc -xc++ -lstdc++ -shared-libgcc (1-м является параметр компилятора, 2-е два являются опциями компоновщика). Это может быть проверено путем выполнения обоих с -v опция (она отображает выполняемые команды набора инструментальных средств бэкенда).

665
ответ дан Kodiologist 28 August 2018 в 00:46
поделиться
  • 1
    Я попробовал весь GCs с тем же результатом. Только с UseConcMarkSweepGC прогоны программы немного дольше, чем с другими. Следовательно, я предполагаю, что это - аппаратная проблема. – evgeni 24 June 2011 в 16:57

Единственные заметные различия - то, что, если Вы передаете .c gcc, он скомпилирует как C, тогда как g ++ будет всегда рассматривать его как C++.

16
ответ дан Jens 28 August 2018 в 00:46
поделиться
  • 1
    Примечание: Если Вам действительно нужно огромный масштабируемость записи, Datomic не мог бы быть лучшим выбором. " Datomic обменивает произвольную масштабируемость записи для сохранения произвольных транзакций и соединений, и имеет сильные данные и модель запроса с произвольным чтением и масштабированием " запроса; datomic.com/faq.html – overthink 29 July 2013 в 15:55

GCC: Набор Компилятора GNU

  • Ссылающиеся домены на все различные языки, которые поддерживаются компилятором GNU.

gcc: GNU C          Компилятор
г ++: Компилятор C++ GNU

основные отличия:

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

Дополнительные Макросы при компиляции *.cpp файлов:

#define __GXX_WEAK__ 1
#define __cplusplus 1
#define __DEPRECATED 1
#define __GNUG__ 4
#define __EXCEPTIONS 1
#define __private_extern__ extern
405
ответ дан Gabriel Staples 28 August 2018 в 00:46
поделиться

Хотя gcc и g ++ команды делают очень похожие вещи, g ++ разработан, чтобы быть командой, которую Вы вызвали бы для компиляции программы C++; это предназначается, чтобы автоматически сделать правильную вещь.

Негласно, они - действительно та же программа. Как я понимаю, оба решают, скомпилировать ли программу как C или как C++ на основе расширения файла. Оба способны к соединению против библиотеки стандарта C++, но только g ++ делает это по умолчанию. Таким образом, если Вам запишут программу в C++, который, оказывается, не должен связываться против стандартной библиотеки, то gcc, окажется, сделает правильную вещь; но тогда, так был бы g ++. Таким образом, нет действительно никакой причины не использовать g ++ для общей разработки C++.

16
ответ дан zaphod 28 August 2018 в 00:46
поделиться
  • 1
    @overthink благодарит указать на это, так как люди, незнакомые с Datomic, не могут понять that' s ограничение дизайна. – a2ndrade 29 July 2013 в 21:59

Для C++ необходимо использовать g ++.

Это - тот же компилятор (например, набор компилятора GNU). GCC или G ++ просто выбирают различный фронтенд с различными опциями по умолчанию.

Вкратце: при использовании g ++, frontend скажет компоновщику, что можно хотеть связаться с библиотеками стандарта C++. gcc frontend не сделает этого (также он мог связаться с ними при передаче правильных параметров командной строки).

73
ответ дан Nils Pipenbrinck 28 August 2018 в 00:46
поделиться
Другие вопросы по тегам:

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