Чем gcc отличается от g++ (gcc vs g++?)

Модератор: Модераторы разделов

Шпунтик
Сообщения: 230
ОС: MSDOS 3.3

Re: Чем gcc отличается от g++

Сообщение Шпунтик »

Uncle_Theodore писал(а):
03.03.2008 02:39
Чушь собачья. Никогда ничего подобного я не говорил. Я говорил, что она для этого не предназначена.

Значит это -
Я никогда подобного не говорил. Хотя бы потому что никакого "режима компиляции C++ кода в gcc" не существует. Вся эта фраза -- полная бессмыслица.

- написал кто-то другой :)

Исходя из всего вышенаписанного можно сделать вывод, что g++ по сути не является компилятором, это лишь менеджер для компилятора gcc.
Путь линуксоида очень напоминает путь воина, главными особенностями которого являются ответственность и самодисциплина. Но и награды этого пути достойны: это свобода и мастерство.
Спасибо сказали:
Аватара пользователя
andreas90
Сообщения: 158
ОС: Bluewhite64 12.2

Re: Чем gcc отличается от g++

Сообщение andreas90 »

Шпунтик писал(а):
03.03.2008 13:17
Uncle_Theodore писал(а):
03.03.2008 02:39
Чушь собачья. Никогда ничего подобного я не говорил. Я говорил, что она для этого не предназначена.

Значит это -
Я никогда подобного не говорил. Хотя бы потому что никакого "режима компиляции C++ кода в gcc" не существует. Вся эта фраза -- полная бессмыслица.

- написал кто-то другой :)

Исходя из всего вышенаписанного можно сделать вывод, что g++ по сути не является компилятором, это лишь менеджер для компилятора gcc.

Дядя Теодор не может четко ответить на мой вопрос.
"Ubuntu" is an ancient African word, that means "I can't configure Slackware"
Спасибо сказали:
Аватара пользователя
landrew.xp
Сообщения: 396
Статус: Опытный новичок в оффлайне
ОС: OpenSUSE; Mandriva; Ubuntu

Re: Чем gcc отличается от g++

Сообщение landrew.xp »

andreas90 писал(а):
03.03.2008 22:02
Шпунтик писал(а):
03.03.2008 13:17
Uncle_Theodore писал(а):
03.03.2008 02:39
Чушь собачья. Никогда ничего подобного я не говорил. Я говорил, что она для этого не предназначена.

Значит это -
Я никогда подобного не говорил. Хотя бы потому что никакого "режима компиляции C++ кода в gcc" не существует. Вся эта фраза -- полная бессмыслица.

- написал кто-то другой :)

Исходя из всего вышенаписанного можно сделать вывод, что g++ по сути не является компилятором, это лишь менеджер для компилятора gcc.

Дядя Теодор не может четко ответить на мой вопрос.

Выяснили же уже.
1. И gcc и g++ - фасады для кучи программ компиляторов, сборщиков и т.д.
2. gcc изначально предназначен для компиляции Си-программ.
3. Можно использовать gcc с параметрами для компиляции C++-программ.
4. g++ - то же самое, что и gcc с параметрами для компиляции C++-программ.
5. Фсе.
Есть многое на свете, друг Горацио,
Что и не снилось нашим мудрецам.
Спасибо сказали:
Аватара пользователя
AMD
Сообщения: 478
Статус: Maestro
ОС: Linux Kubuntu 7.10
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение AMD »

andreas90 писал(а):
02.03.2008 22:50
3al писал(а):
02.03.2008 22:46
andreas90 писал(а):
02.03.2008 22:40
Кто может подробно и аргументировано объяснить новичку и дилетанту чем gcc отличается от g++?

gcc — Gnu Compiler Collection, вызывает компиляторы других языков.
g++ — компилятор с языка c++ для gcc.
Подробности знает вики и гугль.


Не ответ
Простите, а вы внимательно читали про gcc -o proga proga.cc -lstdc++ ?



все просто как видно
раньше (это было очень давно и это было неправдой) - gcc - был GNU C Compiler - соотвественно в те времена он компилил только Си поэтому дядя Теодор и запутался - он кореной линуксист еще тех давних времен. (дядя Теодор не обижайтесь - все мы люди и все мы ошибаемся)

Времена прошли и gcc - стал Gnu Compiler Collection - тоесть стал поддерживать много языков включая C и С++

g++ — просто компилятор для языка c++

Вывод:
тоесть если вы написали прогу на С++ чтобы не парится компилируете с g++ но никто не мешает компилировать ее с gcc но тогда будьте добры и не забудьте указать gcc что это программа С++.

Ну остается только один вопрос - эфективность компилирования - тоесть кто эфективнее компилит - или разницы нет?
Спасибо сказали:
Шпунтик
Сообщения: 230
ОС: MSDOS 3.3

Re: Чем gcc отличается от g++

Сообщение Шпунтик »

landrew.xp писал(а):
04.03.2008 12:25
4. g++ - то же самое, что и gcc с параметрами для компиляции C++-программ.
5. Фсе.

Нет не Фсе.
Если g++ - то же самое, что и gcc, то зачем при своей работе он вызывает gcc? Если он компилятор, то почему он не может обойтись без gcc?
Ответ, ИМХО, очевиден - g++ не является компилятором. Это менеджер, препоцессор, или как-то ещё можно назвать, для gcc, но никак не самостоятельный компилятор если он не может обойтись без gcc.
Почему gcc обходится без g++, а g++ не может обойтись без gcc ?
Путь линуксоида очень напоминает путь воина, главными особенностями которого являются ответственность и самодисциплина. Но и награды этого пути достойны: это свобода и мастерство.
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение deninok »

Вот мне интересно, друзья, а зачем все эти вопросы? Какая разница что есть что с технической точки зрения? Какое в этом практическое значение для программирования? Главное одно: если мне нужно скомпилировать программу, написанную на языке С++, я вызывают команду g++. Все. Чего здесь еще мудрить и спорить-то?
Я думаю, если кому-то из нас действительно интересно, что есть gcc, а что g++ с технической точки зрения, тот может обратиться к официальной документации на http://gcc.gnu.org
На мой взгляд, тема уже переходит в пустой трёп.
Спасибо сказали:
v04bvs
Сообщения: 636
ОС: Debian GNU/Linux

Re: Чем gcc отличается от g++

Сообщение v04bvs »

Шпунтик писал(а):
08.03.2008 16:45
Нет не Фсе.
Если g++ - то же самое, что и gcc, то зачем при своей работе он вызывает gcc? Если он компилятор, то почему он не может обойтись без gcc?
Ответ, ИМХО, очевиден - g++ не является компилятором. Это менеджер, препоцессор, или как-то ещё можно назвать, для gcc, но никак не самостоятельный компилятор если он не может обойтись без gcc.
Почему gcc обходится без g++, а g++ не может обойтись без gcc ?


Вот здесь: Чем gcc отличается от g++ я вроде бы ответил на все подобные вопросы. То ли вы не читали тему, то ли ещё что-либо. Вообще было бы неплохо почистить тему от ненужного флуда, оставив информативные сообщения, и добавить ссылку на неё в какой-нибудь FAQ, потому что вопрос возникает достаточно часто и, вообще говоря, сам по себе интересен (потому что специалист должен разбираться в своих инструментах, а не «тыкать вот эту кнопочку»).
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение diesel »

v04bvs писал(а):
08.03.2008 20:34
То ли вы не читали тему, то ли ещё что-либо. Вообще было бы неплохо почистить тему от ненужного флуда, оставив информативные сообщения, и добавить ссылку на неё в какой-нибудь FAQ, потому что вопрос возникает достаточно часто и, вообще говоря, сам по себе интересен (потому что специалист должен разбираться в своих инструментах, а не «тыкать вот эту кнопочку»).

Совсем ерунду убрал. Тему прикрпеляю в назидание потомкам так сказать.
Спасибо сказали:
GiNeR
Сообщения: 64
ОС: Ubuntu
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение GiNeR »

Смотрите man gcc, на предмет g++. Там всё подробно описано. По сути (хотя выше уже об этом несколько раз это упоминали) g++ можно воспринимать как алиас на gcc с особыми параметрами.
Спасибо сказали:
Аватара пользователя
andreas90
Сообщения: 158
ОС: Bluewhite64 12.2

Re: Чем gcc отличается от g++

Сообщение andreas90 »

Я понял.Все, спасибо
http://www.sklyaroff.ru/x9.htm
"Ubuntu" is an ancient African word, that means "I can't configure Slackware"
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: Чем gcc отличается от g++

Сообщение Luinnar »

# man gcc
GNU GCC(1)

NAME
gcc - GNU project C and C++ compiler
...

А по ссылке в предыдущем посте так вообще всё разжёвано.
Спасибо сказали:
Аватара пользователя
OCTAGRAM
Сообщения: 28
ОС: Mac OS X

Re: Чем gcc отличается от g++

Сообщение OCTAGRAM »

И, напоследок, всё же хотелось бы обратить внимание.
gcc и g++ оба могут использоваться как линкеры. Так вот, у C++ – скомпилированных объектов для инициализации и финализации переменных используется не до конца изученный мною механизм. То ли там на каждый ошник есть инициализатор/финализатор, который для всех переменных вызывает конструкторы/деструкторы, то ли сами переменные как–то хитро помечаются в ошниках на инициализацию. Я видел в документации XL C++, как можно расставлять целочисленные приоритеты разным переменным, видимо, эти приоритеты соблюдаются между ошниками. Так или иначе, этот механизм для меня под покровом тайны. Вот у Ады можно запустить gnatbind, и всё видно, где что инициализируется, всё можно посмотреть. У C++ я такого не видел. Я видел только в разных библиотеках (aspell, к примеру) предупреждения, что, если линковать Cшным линкером, то библиотека может не инициализироваться.
If you want to get to the top, you have to start at the bottom
Спасибо сказали:
dergachev
Сообщения: 847
ОС: archlinux

Re: Чем gcc отличается от g++

Сообщение dergachev »

andreas90 писал(а):
09.03.2008 22:51
Я понял.Все, спасибо
http://www.sklyaroff.ru/x9.htm
Ссылка умерла ...
Спасибо сказали:
Аватара пользователя
Алан
Сообщения: 18
ОС: Debian

Re: Чем gcc отличается от g++

Сообщение Алан »

Вот еще одна полезная ссылка: G++ and GCC
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Чем gcc отличается от g++

Сообщение BratSinot »

Все нормальные компиляторы C/C++, и GCC не исключение, смотрит на название файла. Если дать команду:
gcc test.c то он будет компилировать файл test.c как C программу. А если переименовать файл:
gcc test.cpp то он будет компилировать как C++ программу. То есть какое расширение файла такой компилятор и используется.
Единственное замечание: Я это проверял только в GNU/Linux и Windows. В GNU/Linux это работает, а если использовать Windows и MinGW то надо указывать нужный компилятор.
Спасибо сказали:
Аватара пользователя
fynjy
Сообщения: 172
ОС: openSuSE 11.2 i586

Re: Чем gcc отличается от g++

Сообщение fynjy »

dergachev писал(а):
31.01.2009 19:14
andreas90 писал(а):
09.03.2008 22:51
Я понял.Все, спасибо
http://www.sklyaroff.ru/x9.htm
Ссылка умерла ...

Можно открутить часы: http://web.archive.org/web/20060625021835/...aroff.ru/x9.htm
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Чем gcc отличается от g++

Сообщение frp »

g++ a.cpp -o a = gcc -x C++ a.cpp -o a
Результат идентичный (проверял diff).
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение deninok »

(BratSinot) писал(а):Если дать команду:
gcc test.c то он будет компилировать файл test.c как C программу. А если переименовать файл:
gcc test.cpp то он будет компилировать как C++ программу. То есть какое расширение файла такой компилятор и используется.

К сожалению, вы не правы. Только что проверял. Создал файл, назвал его main.cpp, написал в нём С++-код. Потом дал команду:

Код: Выделить всё

gcc main.cpp

По вашим словам, компилятор должен был понять, что нужно компилировать именно С++-код. Однако он выдал целый список ошибок, потому что пытался компилировать его именно как С-код.

Система: Debian 5.01
Компилятор: gcc 4.3.2
Спасибо сказали:
Olegator
Сообщения: 2493
ОС: SuseLinux 11.2 KDE 4.3

Re: Чем gcc отличается от g++

Сообщение Olegator »

доку неплохо было бы прочитать
http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gc...ing-G_002b_002b
However, the use of gcc does not add the C++ library. g++ is a program that calls GCC and treats `.c', `.h' and `.i' files as C++ source files instead of C source files unless -x is used, and automatically specifies linking against the C++ library. This program is also useful when precompiling a C header file with a `.h' extension for use in C++ compilations. On many systems, g++ is also installed with the name c++.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение drBatty »

deninok писал(а):
02.06.2009 20:53
К сожалению, вы не правы. Только что проверял. Создал файл, назвал его main.cpp, написал в нём С++-код. Потом дал команду:

зависит от "умолчальных" настроек программы, насколько я помню, там где-то есть конфиг, и в конфиге прописаны ключи
1)всё как С
2)всё как ++
3)в зависимости от расширения.
у вас - п2
у оппонента п3
правы - оба. :)

Я тут поставил последний компилятор, он вообще не заработал:
пишет command not found. выяснилось, что он только для тестеров, потому называется g++4.4
переставлять не стал, сделал симлинк. пока - нормально.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Чем gcc отличается от g++

Сообщение RasenHerz »

deninok писал(а):
02.06.2009 20:53
(BratSinot) писал(а):Если дать команду:
gcc test.c то он будет компилировать файл test.c как C программу. А если переименовать файл:
gcc test.cpp то он будет компилировать как C++ программу. То есть какое расширение файла такой компилятор и используется.

К сожалению, вы не правы. Только что проверял. Создал файл, назвал его main.cpp, написал в нём С++-код. Потом дал команду:

Код: Выделить всё

gcc main.cpp

По вашим словам, компилятор должен был понять, что нужно компилировать именно С++-код. Однако он выдал целый список ошибок, потому что пытался компилировать его именно как С-код.

Система: Debian 5.01
Компилятор: gcc 4.3.2

насколько я помню, в Debian чтобы скомпилировать .cpp файлы с помощью gcc надо вызвать gcc file.cpp -lstdc++
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение deninok »

(RasenHerz) писал(а):насколько я помню, в Debian чтобы скомпилировать .cpp файлы с помощью gcc надо вызвать gcc file.cpp -lstdc++

Признаться, никогда не пользовался такой командой. Всегда и на всех Линуксах, с которыми работал, вызывал g++ и всё...

(drBatty) писал(а):зависит от "умолчальных" настроек программы, насколько я помню, там где-то есть конфиг, и в конфиге прописаны ключи
1)всё как С
2)всё как ++
3)в зависимости от расширения.
у вас - п2
у оппонента п3
правы - оба. :)

Спасибо за подсказку. Честно, не знал я такого...
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение drBatty »

deninok писал(а):
03.06.2009 10:26
Спасибо за подсказку. Честно, не знал я такого...
это мои догадки.. мне кажется сделано так... надо бы проверить...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение deninok »

(drBatty) писал(а):это мои догадки.. мне кажется сделано так...

:)
Спасибо сказали:
Аватара пользователя
GMar
Сообщения: 237
Статус: Будущий математик
ОС: Kubuntu,Ubuntu(UNR) 10.04

Re: Чем gcc отличается от g++

Сообщение GMar »

deninok писал(а):
03.06.2009 10:26
(RasenHerz) писал(а):насколько я помню, в Debian чтобы скомпилировать .cpp файлы с помощью gcc надо вызвать gcc file.cpp -lstdc++

Признаться, никогда не пользовался такой командой. Всегда и на всех Линуксах, с которыми работал, вызывал g++ и всё...

(drBatty) писал(а):зависит от "умолчальных" настроек программы, насколько я помню, там где-то есть конфиг, и в конфиге прописаны ключи
1)всё как С
2)всё как ++
3)в зависимости от расширения.
у вас - п2
у оппонента п3
правы - оба. :)

Спасибо за подсказку. Честно, не знал я такого...

man gcc:

Код:

Compiling C++ Programs C++ source files conventionally use one of the suffixes .C, .cc, .cpp, .CPP, .c++, .cp, or .cxx; C++ header files often use .hh, .hpp, .H, or (for shared template code) .tcc; and preprocessed C++ files use the suffix .ii. GCC recognizes files with these names and compiles them as C++ programs even if you call the compiler the same way as for compiling C programs (usually with the name gcc).
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение drBatty »

OCTAGRAM писал(а):
16.05.2008 21:17
Так или иначе, этот механизм для меня под покровом тайны.

это традиционная сишная фишка - только для джедаев :)
я десять раз подумаю, перед тем как сделать глобальную переменную, причём именно потому, что не знаю, как она будет инициализироваться. и если в С это не так уж и страшно, то в С++, с его жутко запутанными классами...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение deninok »

drBatty писал(а):
16.06.2009 10:59
я десять раз подумаю, перед тем как сделать глобальную переменную, причём именно потому, что не знаю, как она будет инициализироваться. и если в С это не так уж и страшно, то в С++, с его жутко запутанными классами...

В современном С++ использование глобальных переменных не оправдано ничем. Иными словами, глобальные переменные в С++-программах вообще не нужны. В свете этого неопределённый порядок инициализации глобальных переменных уже не является проблемой.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение drBatty »

deninok писал(а):
16.06.2009 12:52
drBatty писал(а):
16.06.2009 10:59
я десять раз подумаю, перед тем как сделать глобальную переменную, причём именно потому, что не знаю, как она будет инициализироваться. и если в С это не так уж и страшно, то в С++, с его жутко запутанными классами...

В современном С++ использование глобальных переменных не оправдано ничем. Иными словами, глобальные переменные в С++-программах вообще не нужны. В свете этого неопределённый порядок инициализации глобальных переменных уже не является проблемой.

эх... если бы всё было так просто :(
а куда деть миллионы строк на Си? переписывать?
но если из Си ещё как-то можно получить доступ к данным класса, то вот из асма это сделать намного сложнее. Как раз для обмена данными между модулями на разных языках и есть смысл использовать глобальные переменные. Хотя в чистом С++ - согласен, это зло.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение deninok »

(drBatty) писал(а):а куда деть миллионы строк на Си? переписывать?

"Э-э, профессор, это уже второй вопрос..." (С)
Я же говорил о чистом С++. :)
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение drBatty »

deninok писал(а):
18.06.2009 15:48
Я же говорил о чистом С++

есть ещё и статические переменные...

Код: Выделить всё

int f()
{
static x=4;
return x;
}

если доверить их инициализацию компилятору(точнее линковщику ИМХО), то это будет очень смешные грабли.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ответить