如果我有较新版本的 g++,如何强制使用较旧版本的 g++?

如果我有较新版本的 g++,如何强制使用较旧版本的 g++?

g++ --version我家用机器上显示7.4.0,但我经常工作的服务器显示4.8.5。他们的服务器不支持-std=c++11编译器标志,但我家用机器支持。它支持的最新标志是-std=c++0x

然而,有时当我在家用机器上写代码,用-std=c++0xflag 编译而没有错误时,我将要如果我将其带到服务器的本地计算机,就会出现错误。有趣的是,通过 SSH 连接到他们的服务器并没有出现问题。

我不太清楚该怎么做,我想我的本地机器可能忽略了该-std=c++0x标志,因为我有较新的版本。有没有办法强制使用特定版本?

如果有任何区别,我正在使用带有 LXSS(Ubuntu)的 Windows 10,而我连接的服务器使用的是 Redhat。

答案1

在 Ubuntu 中打开终端并输入:

sudo apt install g++-4.8

此命令在 Ubuntu 中安装 g++ 版本 4.8.5,与您的服务器上安装的版本相同。

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 60
sudo update-alternatives --config g++

运行后将sudo update-alternatives --config g++出现 g++ 版本菜单,并要求您选择默认的 g++ 版本,如下所示:

Press <enter> to keep the current choice[*], or type selection number:

从菜单中输入选择编号并按Enter


要更改 gcc 的默认版本,请按照相同的步骤,但要用 gcc 替换 g++ 的所有实例,并用 gcc 的版本替换 g++ 的版本。

相关内容