Я установил свой CMakeLists.txt так, чтобы ${CUDA_HOST_COMPILER}
был /usr/local/cuda/bin/gcc
(что указывает на /usr/bin/gcc-4.9
). Это так, как должно быть, и отлично работает для . мне ... до сегодняшнего дня я не побежал строить, и во время промежуточной фазы связи, я получил:CMake с CUDA: ccbin с ненужными кавычками ( ")
"/usr/local/cuda/bin/gcc": No such file or directory
CMakeFiles/tester.dir/build.make:2335: recipe for target 'CMakeFiles/wherever/foo_intermediate_link.o' failed
при ближайшем рассмотрении выясняется, что команды компиляции NVCC являются:
/usr/local/cuda/bin/nvcc foo.cu -dc -o CMakeFiles/someplace/foo.cu.o -ccbin /usr/local/cuda/bin/gcc -m64 etc. etc.
но команда промежуточного звена -
/usr/local/cuda/bin/nvcc -gencode arch=compute_30,code=compute_30 -g -G --generate-line-info -m64 -ccbin \"/usr/local/cuda/bin/gcc\" -dlink etc. etc.
Обратите внимание, что сбежал \"
. Почему это происходит?
PS - Моя основная подозреваемая причина - это результат apt-get upgrade
, который, возможно, что-то изменил в версии CMake, которую я имею (это Stretch Machine Debian).