Почему gcc может компилировать код C ++, но не может ссылаться? - PullRequest
2 голосов
/ 04 марта 2010

Я знаю, что код c ++ должен быть скомпилирован и скомпонован g ++, а не gcc. Но почему gcc все еще может компилировать исходный код на С ++, несмотря на большое количество ключевых слов на С ++ в исходном коде.

Кстати, я обнаружил, что даже могу создать общую библиотеку с помощью gcc со всем кодом C ++. Почему?

Ответы [ 3 ]

9 голосов
/ 04 марта 2010

g ++ - это gcc, он просто автоматически связывается со стандартными библиотеками C ++.

Если ваш код g ++ зависит от стандартных библиотек (вещи в пространстве имен std), вы можете

  1. используйте команду g ++, и все это автоматически
  2. используйте команду gcc и явно укажите стандартные библиотеки C ++ (-lstdc++)
4 голосов
/ 04 марта 2010

Из справочной страницы GCC:

   For any given input file, the file name suffix determines what kind of
   compilation is done:

   file.c
       C source code which must be preprocessed.

   .
   .
   .

   file.h
       C, C++, Objective-C or Objective-C++ header file to be turned into
       a precompiled header.

   file.cc
   file.cp
   file.cxx
   file.cpp
   file.CPP
   file.c++
   file.C
       C++ source code which must be preprocessed.  Note that in .cxx, the
       last two letters must both be literally x.  Likewise, .C refers to
       a literal capital C.

Чего он не делает, так это автоматически связывается со стандартными библиотеками C ++. В этот момент проще всего использовать g++.

2 голосов
/ 04 марта 2010

Вы можете связать с -lstdc ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...