web-dev-qa-db-ja.com

新しいバージョンがある場合、どうすれば古いバージョンのg ++​​を強制できますか?

自宅のマシンのg++ --version7.4.0を読み取りますが、私が頻繁に作業するサーバーは4.8.5を示しています。彼らのサーバーは-std=c++11コンパイラフラグをサポートしていませんが、私の自宅のマシンはまだサポートしています。サポートする最新のフラグは-std=c++0xです。

ただし、ホームマシンでコードを作成し、-std=c++0xフラグを使用してエラーなしでコンパイルすると、サーバーのローカルコンピューターにコードを転送すると、エラーが発生しますwill。興味深いことに、サーバーへのSSH接続では問題は発生しません。

新しいバージョンを持っているので、ローカルマシンが-std=c++0xフラグを無視しているのではないかと思います。特定のバージョンを強制する方法はありますか?

違いがある場合は、LXSS(Ubuntu)を搭載したWindows 10を使用しており、接続先のサーバーはRedhatを使用しています。

4
gator

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のデフォルトバージョンを変更するには、g ++のすべてのインスタンスをgccで置き換え、g ++のバージョンをgccのバージョンで置き換えることを除いて、同じ手順に従います。

4
karel