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 -v
和 g++ -v
命令验证是否安装成功。