区别
gcc
和 g++
是 GNU Compiler Collection(GCC)的一部分,用于编译 C 和 C++ 代码:
-
gcc
(GNU Compiler Collection):gcc
是用于编译 C 语言的命令。- 它可以将 C 语言的源代码(
.c
文件)编译成机器可执行的二进制文件。 gcc
还可以编译 C++ 代码,但必须手动指定-lstdc++
以链接 C++ 标准库。
-
g++
:g++
是gcc
的一个专门用来处理 C++ 的版本。- 它自动链接 C++ 标准库,因此不需要手动指定
-lstdc++
。 - 使用
g++
时,编译器会默认将源文件识别为 C++ 代码。
区别
- 语言特性:
gcc
默认用于 C 语言,而g++
用于 C++ 语言。 - 库链接:
g++
会自动链接 C++ 标准库,而gcc
需要手动指定-lstdc++
来链接。 - 代码解析:
g++
默认使用 C++ 的代码解析方式,因此会按 C++ 规则处理源代码(如类型检查和命名空间)。
使用 update-alternatives管理版本
-
安装不同版本的 GCC: 如果还没有安装所需版本的 GCC,可以使用以下命令进行安装。例如,要安装 GCC 8 和 GCC 9:
sudo apt update sudo apt install gcc-8 g++-8 gcc-9 g++-9
-
使用
update-alternatives
设置优先级:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 80 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
-
选择默认的 GCC 版本: 使用以下命令选择所需版本的 GCC。
sudo update-alternatives --config gcc sudo update-alternatives --config g++
运行命令后,将显示一个选项列表,例如:
There are 2 choices for the alternative gcc (providing /usr/bin/gcc). Selection Path Priority Status ------------------------------------------------------------
0 /usr/bin/gcc-9 90 auto mode
1 /usr/bin/gcc-8 80 manual mode
2 /usr/bin/gcc-9 90 manual mode
输入编号选择所需的 GCC 版本(例如选择
1
来使用 GCC 8)。 -
验证更改: 使用以下命令验证当前使用的 GCC 版本:
gcc --version g++ --version