自宅のマシンのg++ --version
は7.4.0
を読み取りますが、私が頻繁に作業するサーバーは4.8.5
を示しています。彼らのサーバーは-std=c++11
コンパイラフラグをサポートしていませんが、私の自宅のマシンはまだサポートしています。サポートする最新のフラグは-std=c++0x
です。
ただし、ホームマシンでコードを作成し、-std=c++0x
フラグを使用してエラーなしでコンパイルすると、サーバーのローカルコンピューターにコードを転送すると、エラーが発生しますwill。興味深いことに、サーバーへのSSH接続では問題は発生しません。
新しいバージョンを持っているので、ローカルマシンが-std=c++0x
フラグを無視しているのではないかと思います。特定のバージョンを強制する方法はありますか?
違いがある場合は、LXSS(Ubuntu)を搭載したWindows 10を使用しており、接続先のサーバーはRedhatを使用しています。
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のバージョンで置き換えることを除いて、同じ手順に従います。