问题描述
我想建立,其中有CUDA作为一个依赖。但CMake的脚本无法找到系统上安装CUDA:
I am trying to build this project, which has CUDA as a dependency. But the cmake script cannot find the CUDA installation on the system:
cls ~/workspace/gpucluster/cluster/build $ cmake ..
-- The C compiler identification is GNU 4.7.1
-- The CXX compiler identification is GNU 4.7.1
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at /usr/share/cmake/Modules/FindCUDA.cmake:488 (message):
Specify CUDA_TOOLKIT_ROOT_DIR
Call Stack (most recent call first):
CMakeLists.txt:20 (find_package)
- 不完整的配置,出现了错误
-- Configuring incomplete, errors occurred!
我试着将其添加为一个环境变量的.bashrc
,没有效果:
I've tried adding it as an environment variable to .bashrc
, to no effect:
export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-5.5
如何指定CUDA_TOOLKIT_ROOT_DIR
是否正确?
推荐答案
cmake的提到 CUDA_TOOLKIT_ROOT_DIR
作为CMake的变量,而不是环境之一。这就是为什么当你把它变成的.bashrc不工作。如果你看看FindCUDA.cmake它清楚地说:
cmake mentioned CUDA_TOOLKIT_ROOT_DIR
as cmake variable, not environment one. That's why it does not work when you put it into .bashrc. If you look into FindCUDA.cmake it clearly says that:
该脚本会提示用户指定CUDA_TOOLKIT_ROOT_DIR如果preFIX
不能NVCC的位置,在系统路径和要求的确定
被指定到find_package()。要使用的不同的安装版本
工具箱设置环境变量CUDA_BIN_PATH运行cmake的前
(例如CUDA_BIN_PATH =的/ usr /本地/ cuda1.0而不是默认的/ usr /本地/ CUDA)
或配置之后设置CUDA_TOOLKIT_ROOT_DIR。如果更改的值
CUDA_TOOLKIT_ROOT_DIR,依赖路径上的各种组件将
搬迁。
所以把 CUDA_BIN_PATH
到.bashrc或者指定 CUDA_TOOLKIT_ROOT_DIR
来cmake的:
So put CUDA_BIN_PATH
into .bashrc or specify CUDA_TOOLKIT_ROOT_DIR
to cmake:
cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-5.5 ..
这篇关于如何让cmake的CUDA找到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!