1

manjaro Linux で cuda 7.5 を使用して、cudnn5 をサポートする torch7 または caffe をビルドしようとしています。

gcc 6.1 と gcc 4.9 の両方が利用可能です。gcc 6.1 は cuda 7.5 と互換性がないため、cudnn 5 をサポートする torch7 および caffe をビルドするときにエラーが発生します。

gcc4.9 は AUR リポジトリからインストールされました。

jeanpat@dip4fish ~]$ whereis gcc-4.9
gcc-4: /usr/bin/gcc-4.9
[jeanpat@dip4fish ~]$ whereis g++-4.9
g++-4: /usr/bin/g++-4.9
[jeanpat@dip4fish ~]$ whereis g++
g++: /usr/bin/g++ /usr/share/man/man1/g++.1.gz
[jeanpat@dip4fish ~]$ whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz /usr/share/info/gcc.info.gz

アイデアは、コンパイルする前に gcc6.1 から gcc4.9 に切り替えることでした:

jeanpat@dip4fish ~]$ export CC=/usr/bin/gcc-4.9
[jeanpat@dip4fish ~]$ export CXX=/usr/bin/g++-4.9

しかし、gcc が呼び出されると、これはまだ 6.1 バージョンです。

[jeanpat@dip4fish ~]$ gcc --version
gcc (GCC) 6.1.1 20160602  

.bashrc は次のように変更されました。

$ echo $LD_LIBRARY_PATH 
:/opt/cuda/lib64:

gcc 4.9 に透過的に一時的に切り替える方法 (makefile または caffe と torch7 の install.sh スクリプトを変更せずに) は?

4

1 に答える 1

2

ファイルを変更したくない場合は、次のハックを使用できます。

cd /usr/bin/
mv gcc gcc-6.1-back
mv g++ g++-6.1-back
ln -s gcc-4.9 gcc
ln -s g++-4.9 g++

...その後、「6.1」に戻すのはかなり簡単です....リンクを削除するなど.


Manjaro に /etc/alternatives/ メカニズムがある場合、この Java の例のように、両方の gcc バージョンを /etc/alternatives/ に「インストール」できます。 . 単一のコマンドと 1 つの設定でバージョンを切り替えます。

于 2016-06-28T14:38:45.183 に答える