代码之家  ›  专栏  ›  技术社区  ›  solotim

为什么GCC可以编译C++代码却不能链接?

gcc
  •  2
  • solotim  · 技术社区  · 14 年前

    我知道C++代码应该由G++编译,而不是GCC。 但是为什么GCC仍然可以编译C++源代码,尽管源代码中有很多C++关键字。

    顺便说一下,我发现我甚至可以用GCC用所有C++代码构建一个共享库。为什么?

    3 回复  |  直到 14 年前
        1
  •  9
  •   Will    14 年前

    G++是GCC,它只是自动链接到标准的C++库。

    如果您的g++代码依赖于标准库(在 std 命名空间),您可以

    1. 使用g++命令,它是全自动的
    2. 使用GCC命令,并显式指定C++标准库( -lstdc++ )
        2
  •  4
  •   Xorlev    14 年前

    从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++ 在那一点上。

        3
  •  2
  •   Tronic    14 年前

    您可以与-lstdc++链接。