📜  GCC 和 G++ 的区别(1)

📅  最后修改于: 2023-12-03 14:41:22.072000             🧑  作者: Mango

GCC 和 G++ 的区别

概述

GCC 是 GNU Compiler Collection 的缩写,是一个包含了 C、C++、Objective-C、Fortran、Ada、以及其他语言的编译器。G++ 是 GCC 的 C++ 编译器。

在 GCC 中,C、C++、Objective-C 的编译器被称为前端(frontend),它们将源代码转化为汇编代码和中间代码。而后端(backend)则负责将中间代码转化为目标代码。

区别
  1. G++ 编译器默认启用 C++ 库

与 GCC 不同,G++ 编译器默认启用 C++ 库。这意味着,你可以直接使用 C++ 库提供的各种函数和特性,而无需手动链接或者包含头文件。

  1. G++ 编译器默认启用 C++11 标准

G++ 编译器默认启用 C++11 标准,而 GCC 默认启用 C89/C90 标准。如果你想使用 C++11 特性,可以直接使用 G++ 进行编译。

  1. G++ 会默认链接 C++ 标准库

由于 G++ 默认会启用 C++ 库,因此它会默认链接 C++ 标准库。而 GCC 不会默认链接 C++ 标准库,因为它默认使用 C 语言标准库。

  1. G++ 默认生成的可执行文件名为 a.out

和 GCC 不同,G++ 生成的可执行文件默认名为 a.out。

示例代码

下面是一个简单的 C++ 程序,分别使用 GCC 和 G++ 进行编译和链接:

#include <iostream>

int main() {
    std::cout << "Hello, world!" << std::endl;
    return 0;
}

使用 GCC 进行编译和链接:

gcc -o hello hello.cpp

使用 G++ 进行编译和链接:

g++ -o hello hello.cpp
总结

GCC 和 G++ 都是强大的编译器,它们在编译和链接方面有很多共同之处,也有一些细微的区别。理解这些区别可以帮助程序员更好地使用这两个编译器。