### vcpkgのコンパイル時にスーパーユーザーのgcc(4.8)が邪魔
まるっきりの初心者なので恐縮ですが、とあるsshログイン先のスパコンで
与えられたホームディレクトリ内にjsoncppをインストールしようとしています。
g++: エラー: unrecognized command line option ‘-std=c++1z’
このようなエラーが大量に発生し、検索してみたところgccやg++のバージョンが
古いことによるものだということはわかったので、まずはホームディレクトリ内に
新しいバージョンのgcc9.2.0をインストールしました。
スパコンの利用案内に「PATH等環境変数はジョブ実行時の環境に引き継がれません。
環境変数の設定は、ジョブスクリプト内でお願いします。」と書かれておりましたので
下記のシェルスクリプトを書いてジョブとして投入してみましたが、やはりバージョンが古いと表示されます。
% #!/bin/sh
% #$ -S /bin/sh
% export PATH=$PATH:/home/user/tool/bin/gcc
% export PATH=$PATH:/home/user/tool/bin/g++
% cd /home/user/vcpkg
% ./bootstrap-vcpkg.sh
% ./vcpkg integrate install
% vcpkg install jsoncpp
発生している問題・エラーメッセージ
CXX (g++) is too old; please install a newer compiler such as g++-7. On Ubuntu try the following: sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo apt-get update -y sudo apt-get install g++-7 -y On CentOS try the following: sudo yum install centos-release-scl sudo yum install devtoolset-7 scl enable devtoolset-7 bash
試したこと
$ /home/user/tool/bin/gcc -v
$ /home/user/tool/bin/g++ -v
はどちらもgcc バージョン 9.2.0 (GCC) とかえしてくれるのでジョブ実行中も
このgccを使ってほしいのですが、どうも上記のスクリプトでは参照してくれないようです。
確認したところ、スパコンのgccはバージョン4.8でした。が、もちろん私にupdateする権限はありません。
$ gcc -v
$ g++ -v
gcc バージョン 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
$ which gcc
/usr/bin/gcc
ジョブ実行時にスーパーユーザーの環境変数を無視したりとか、そんなことはできないのでしょうか?
補足情報(FW/ツールのバージョンなど)
スパコンのOS Red Hat Enterprise Linux 7 7.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/18 17:02
2020/01/19 00:38