Можно использовать ниже, чтобы получить UTF8 без спецификации
$MyFile | Out-File -Encoding ASCII
gcc
и g++
драйверы компилятора Компилятора GNU Набор (который был когда-то давно просто компилятором C GNU ).
Даже при том, что они автоматически определяют, какие бэкенды (cc1
cc1plus
...) для вызова в зависимости от типа файла, если не переопределено с -x language
, у них есть некоторые различия.
, вероятно, наиболее важное различие в их значениях по умолчанию - против каких библиотек они связываются автоматически.
Согласно онлайн-документации GCC опции и ссылки, как g ++ вызывается , g++
, эквивалентны gcc -xc++ -lstdc++ -shared-libgcc
(1-м является параметр компилятора, 2-е два являются опциями компоновщика). Это может быть проверено путем выполнения обоих с -v
опция (она отображает выполняемые команды набора инструментальных средств бэкенда).
Единственные заметные различия - то, что, если Вы передаете .c
gcc, он скомпилирует как C, тогда как g ++ будет всегда рассматривать его как C++.
GCC: Набор Компилятора GNU
gcc: GNU C Компилятор
г ++: Компилятор C++ GNU
основные отличия:
Дополнительные Макросы при компиляции *.cpp файлов:
#define __GXX_WEAK__ 1
#define __cplusplus 1
#define __DEPRECATED 1
#define __GNUG__ 4
#define __EXCEPTIONS 1
#define __private_extern__ extern
Хотя gcc и g ++ команды делают очень похожие вещи, g ++ разработан, чтобы быть командой, которую Вы вызвали бы для компиляции программы C++; это предназначается, чтобы автоматически сделать правильную вещь.
Негласно, они - действительно та же программа. Как я понимаю, оба решают, скомпилировать ли программу как C или как C++ на основе расширения файла. Оба способны к соединению против библиотеки стандарта C++, но только g ++ делает это по умолчанию. Таким образом, если Вам запишут программу в C++, который, оказывается, не должен связываться против стандартной библиотеки, то gcc, окажется, сделает правильную вещь; но тогда, так был бы g ++. Таким образом, нет действительно никакой причины не использовать g ++ для общей разработки C++.
Для C++ необходимо использовать g ++.
Это - тот же компилятор (например, набор компилятора GNU). GCC или G ++ просто выбирают различный фронтенд с различными опциями по умолчанию.
Вкратце: при использовании g ++, frontend скажет компоновщику, что можно хотеть связаться с библиотеками стандарта C++. gcc frontend не сделает этого (также он мог связаться с ними при передаче правильных параметров командной строки).