g++ --version
我家用机器上显示7.4.0
,但我经常工作的服务器显示4.8.5
。他们的服务器不支持-std=c++11
编译器标志,但我家用机器支持。它支持的最新标志是-std=c++0x
。
然而,有时当我在家用机器上写代码,用-std=c++0x
flag 编译而没有错误时,我将要如果我将其带到服务器的本地计算机,就会出现错误。有趣的是,通过 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++ 的版本。