gcc 和 g++ 的区别和联系

Linux 系统下开发 C/C++ 程序时,会用到 GCC (GNU Compiler Collection,GNU 编译工具集合),其包含了编译器、连接器等工具。GCC 工具集里,编译时会用到 gcc 和 g++ 两个工具,两者之间既有区别,又有联系,下面简单总结一下。

gcc 和 g++ 的区别

  • gcc 和 g++ 含义不同:
    gcc(小写形式)通常表示 GNU C 语言编译器,g++ 表示 GNU C++ 语言编译器。
    在编译 C/C++ 程序时,gcc 会调用 C 编译器,g++ 会调用 C++ 编译器。

  • .c.cpp 文件处理方式不同:
    gcc 会把.c 文件当作 C 程序,把.cpp 文件当作 C++ 程序。
    g++ 会把.c.cpp 文件都当成 C++ 程序处理。

  • 链接方式不同:
    gcc 不会链接 C++ 库(如 STL 标准库)。
    g++ 会自动链接 C++ 库。

  • 预处理时的宏不同:
    g++ 会自动添加一些预处理的宏(如__cplusplus),但是 gcc 不会。

gcc 和 g++ 使用建议

  • gcc 和 g++ 都可以用来编译 C 和 C++ 代码。

  • 如果开发纯 C 语言的程序,建议使用 gcc。如果开发 C/C++ 程序,而且还会用到 C++ 标准库,建议使用 g++。

  • 由于 C 和 C++ 语法上的区别和兼容性,g++ 成功编译的程序,gcc 可能会报错;gcc 报错的程序,改用 g++ 可能编译成功。

gcc 和 g++ 安装方式

apt 安装

1
sudo apt install gcc g++

yum 安装

1
sudo yum install gcc gcc-c++

最后,可以通过 gcc -vg++ -v 命令验证是否安装成功。