2016-03-21 10 views
1

${CUDA_HOST_COMPILER}/usr/local/cuda/bin/gcc/usr/bin/gcc-4.9を指す)になるようにCMakeLists.txtを設定しました。 。私は...今日まで、私はビルドを実行し、中間リンクフェーズで、私が得た:CakeでCMake:不要な引用符で囲まれたccbin

/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/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 -gencode arch=compute_30,code=compute_30 -g -G --generate-line-info -m64 -ccbin \"/usr/local/cuda/bin/gcc\" -dlink etc. etc. 

エスケープされた\"に注意してください。なぜこうなった?

PS - 私の主な疑わしい理由は、私が持っているCMakeのバージョン(これはDebian Stretchマシン)で何か変更されたapt-get upgradeの影響です。

答えて

2

私が正しかったようだ:

 list(APPEND nvcc_flags -ccbin "\"${CUDA_HOST_COMPILER}\"") 

を余分な引用符を使用して、コンパイラのパスを囲みません

 list(APPEND nvcc_flags -ccbin "${CUDA_HOST_COMPILER}") 

で:/usr/share/CMake/FindCUDA.cmake、ライン1554年では、我々は交換する必要があります。

関連する問題