web-dev-qa-db-ja.com

Ubuntu 17.04でのトーチのコンパイル:GCCバージョン> 5およびGccエラーのサポートなし:gcc: 'cc1'を実行しようとしてエラー:execvp:そのようなファイルまたはディレクトリはありません

Ubuntu 17.04にトーチをインストールしているときに、いくつかの問題が発生しました。

トーチをコンパイルしようとした後の最初のレポートは https://stackoverflow.com/questions/6622454/cuda-incompatible-with-my-gcc-version に似たものでした

私に

error -- unsupported GNU version! gcc >5 are not supported!

これを修正した後、次のような別のエラーが発生しました。

https://stackoverflow.com/questions/11912878/gcc-error-gcc-error-trying-to-exec-cc1-execvp-no-such-file-or-directory

Gcc error: gcc: error trying to exec 'cc1': execvp: No such file or directory

また、これが私のcudaセットアップと関連していることをここに追加します。

1
csugai

Gcc-5をインストールして、最初のエラーを修正しました。

Sudo apt-get install gcc-5

次に、それはcc1を見つけることができなかったと言ったので、私はしました

which cc1

空白を返しました。これは、g ++-5をインストールしなかったためです。

Sudo apt-get install gcc-5 g++-5

次にこれをデフォルトのgccにしたいので、

Sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 1

そして最後に

./install.sh

トーチディレクトリで動作します。これは、ここでのアプローチに似ています: https://Gist.github.com/beci/2a2091f282042ed20cda

すべてを開始したトーチの開始: http://torch.ch/docs/getting-started.html

これが誰かを助けることを願って

2
csugai

私はほとんど同じエラーメッセージがありました:

gcc: 'cc1'を実行しようとしてエラー:execvp:そのようなファイルまたはディレクトリはありません

グーグルでここに到着しました。私の同じ問題を抱える人々を助けるために...私のエラーは異なるコンテキストにありました:go-sqlite3ドライバーをインポートするgoプログラムをコンパイルしようとしました...

私の場合(ubuntu 16.10 yakkety yak)Sudo find /usr/ -name cc1は、cc1がインストールされていることを示しました。

/usr/lib/gcc/x86_64-linux-gnu/4.9/cc1
/usr/lib/gcc/x86_64-linux-gnu/5/cc1
/usr/lib/gcc/x86_64-linux-gnu/6/cc1

which gccを実行しましたが、gccがnvidia cuda driver binディレクトリを指していることがわかりました。

私の場合、これは適切にアンインストールしなかった残りのものであったため、$PATH.bashrcからそのディレクトリを手動で削除する必要がありました。端末を閉じた(source ~/.bashrcを実行できた)、適切な端末(which gcc)を指していることを/usr/bin/gccで検証し、goプログラムを再コンパイルしようとした今回はエラーなし。

私はこれが完璧な答えではないかもしれないことを知っていますが、この種のものをさらに調査するために同じエラーメッセージを持っている人を指しているかもしれません。

もちろん、使用しているgccのバージョンを確認し、必要な「コンパニオン」g ++をインストールしてください。私の場合は、g++-4.9(インストール済み)です。

0
firepol