Dokumentation von nvcc keine env Variable Liste ccbin zu ändern, nur die Option:
http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html
--compiler-bindir directory
, -ccbin
das Verzeichnis an, in dem der Compiler ausführbare Datei befindet sich. Der Host-Compiler-Name der ausführbaren Datei kann ebenfalls angegeben werden, um sicherzustellen, dass der richtige Host-Compiler ausgewählt ist. Auch
Linux Führer haben keine solche Informationen: http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
Sie können versuchen, einige nvcc Wrapper-Skript erstellen und es früher in der PATH-env var wie wenn man:
mkdir ~/supernvcc
echo '#!/bin/sh' > ~/supernvcc/nvcc
echo `which nvcc` -ccbin clang-3.8 '[email protected]' >> ~/supernvcc/nvcc
chmod +x ~/supernvcc/nvcc
export PATH=/home/`id -un`/supernvcc:$PATH
(Wiederholung letzte Zeile mit export
in jeder neuen Shell vor der Verwendung nvcc
oder fügen Sie es zu Ihrem .bashrc
oder andere Shell-Init-Skript)
PS: ein d nvcc ist zu Bash-Skript, können Sie kopieren Sie es einfach und bearbeitet:
cat `which nvcc`
UPDATE: People recommend to link correct gcc version zum intern dir /usr/local/cuda/bin/
von CUDA:
sudo ln -s /usr/bin/gcc-4.4 /usr/local/cuda/bin/gcc
Danke, obwohl zu diesen Bemühungen gehen es sein könnte arbeite nur die makefiles ändern - ich war jus hoffte es gab einen "sauberen" Weg, dies zu tun – Chris
@RobertCrovella, Alias funktioniert nicht für Skript-Shells von Makefiles gestartet. In Ubuntu nvcc (/ usr/bin/nvcc) von Ubuntu-Paket ist Skript, nicht überprüft Debian und/oder Nvidia-Variante des Pakets (und es gibt gcc-5/g ++ - 5 in ubuntu, die auch von nvcc unterstützt wird). 'supernvcc/nvcc' ist möglicherweise bequemer, wenn viele Makefiles vorhanden sind. – osgx
Und meine Lösung ist unvollständig: Ich habe makefile (cmakefile), die nvcc mit falschem '-ccbin/usr/bin/cc' aufruft, die auf gcc-6 zeigt, nicht gcc-5 benötigt von nvcc. Und nvcc schlägt fehl, wenn zwei Optionen von "-ccbin" vorhanden sind. Also, es wird etwas besseres supernvcc/nvcc benötigt, das '$ @' aus '-ccbin' und dem nächsten Argument filtert und andere Argumente an echtes nvcc weitergibt, aber ich habe keine Kenntnis von dieser Art von Bash-Magie. – osgx