Ubuntu 下判断 cmake 用的 gcc 还是 g++,如何切换版本

空明流光 / 2023-05-06 / 原文

> 1 / 1
> 
> Ubuntu 下怎么知道 cmake 用的 gcc 还是 g++

1 / 1

在Ubuntu上,可以通过`cmake`命令行选项`-DCMAKE_CXX_COMPILER`来指定C++编译器,而默认情况下,`cmake`将使用系统的默认编译器。

要查看`cmake`使用的默认C++编译器,可以使用以下命令:

perl

```perl
cmake --system-information | grep CXX_COMPILER
```

这将输出类似于以下内容的行:

javascript

```javascript
CMAKE_CXX_COMPILER: /usr/bin/c++
```

其中`/usr/bin/c++`是`cmake`使用的默认C++编译器的路径。要查看这个编译器是GCC还是G++,可以运行以下命令:

bash

```bash
readlink -f $(which c++)
```

如果输出结果中包含`g++`,则表示默认的C++编译器是G++。如果输出结果中包含`gcc`,则表示默认的C++编译器是GCC。

> 1 / 1
> 
> 可以同时安装多个g++版本吗?

1 / 1

是的,可以在Ubuntu上同时安装多个g++版本。这可以通过安装不同版本的g++包来实现。

首先,您需要添加ppa源以获取支持不同版本的g++的软件包。打开终端并输入以下命令:

sql

```sql
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
```

然后,您可以使用以下命令来安装不同版本的g++:

`sudo apt install g++-X.Y`

其中`X.Y`是您要安装的g++版本号。例如,要安装g++ 8.4和g++ 9.4,您可以运行以下命令:

`sudo apt install g++-8 g++-9`

安装后,您可以使用以下命令来检查已安装的g++版本:

bash

```bash
ls /usr/bin/g++*
```

这将列出所有已安装的g++版本。您可以使用以下命令来切换默认g++版本:

sql

```sql
sudo update-alternatives --config g++
```

该命令将列出所有可用的g++版本,然后您可以选择要使用的默认版本。

请注意,使用不同版本的g++时可能需要更新您的CMake文件或Makefile以选择正确的g++版本。


# 设置gcc优先级,最后的数字代表优先程度,数值越大,优先程度越高,可自行调整各版本的优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
# 设置g++优先级
sudo update-alternatives  --install /usr/bin/g++ g++ /usr/bin/g++-5 50
sudo update-alternatives  --install /usr/bin/g++ g++ /usr/bin/g++-7 70
sudo update-alternatives  --install /usr/bin/g++ g++ /usr/bin/g++-9 90
 
# 查看gcc各版本优先级,可以手动调整默认版本
sudo update-alternatives --config gcc
# 查看g++各版本优先级
sudo update-alternatives --config g++

检查默认gcc/g++版本,使用如下命令
gcc -v
g++ --version