我正在尝试设置启用了 CUDA 选项的点云库主干构建。
我相信我已经按照这些说明正确安装了 CUDA 。
在 PCL 构建的 cmake 选项中,一些选项无法识别:
有什么我可以手动设置CUDA_SDK_ROOT_DIR
的吗?对于其他未找到的选项也是如此。
CUDA_SDK_ROOT_DIR
应设置为您安装 NVIDIA 的 GPU 计算 SDK 的方向。可从您下载 CUDA 的 NVIDIA 的同一页面下载 GPU 计算 SDK。默认情况下,此 SDK 将安装到$HOME/NVIDIA_GPU_Computing_SDK
. 适当地设置它,然后重新运行 cmake。
编辑:
该变量实际上是在寻找包含您正在使用的 CUDA 版本的CUDA_SDK_ROOT_DIR
子目录。$HOME/NVIDIA_GPU_Computing_SDK
对我来说,这是$HOME/NVIDIA_GPU_Computing_SDK/CUDA/v4.1
.
FindCUDA.cmake的源代码提供了有关如何找到此路径的一些提示:
########################
# Look for the SDK stuff. As of CUDA 3.0 NVSDKCUDA_ROOT has been replaced with
# NVSDKCOMPUTE_ROOT with the old CUDA C contents moved into the C subdirectory
find_path(CUDA_SDK_ROOT_DIR common/inc/cutil.h
"$ENV{NVSDKCOMPUTE_ROOT}/C"
"$ENV{NVSDKCUDA_ROOT}"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Installed Products\\NVIDIA SDK 10\\Compute;InstallDir]"
"/Developer/GPU\ Computing/C"
)
即检查 NVSDKCOMPUTE_ROOT 或 NVSDKCUDA_ROOT 环境变量是否设置正确。
在 Linux 机器上,.. 将"$ENV{HOME}/NVIDIA_GPU_Computing_SDK/C"添加到 FindCUDA.cmake 模块中的 'find_path' 选项: (usr/share/cmake-2.8/Modules/FindCUDA.cmake)
########################
# Look for the SDK stuff. As of CUDA 3.0 NVSDKCUDA_ROOT has been replaced with
# NVSDKCOMPUTE_ROOT with the old CUDA C contents moved into the C subdirectory
find_path(CUDA_SDK_ROOT_DIR common/inc/cutil.h
"$ENV{HOME}/NVIDIA_GPU_Computing_SDK/C"
"$ENV{NVSDKCOMPUTE_ROOT}/C"
"$ENV{NVSDKCUDA_ROOT}"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Installed Products\\NVIDIA SDK 10\\Compute;InstallDir]"
"/Developer/GPU\ Computing/C"
)
cmake 现在会自动找到我的 4.0 SDK。
但是我的构建仍然找不到cutil.h,即使它在那里。$HOME/NVIDIA_GPU_Computing_SDK/C/common/inc/cutil.h。我必须在项目中添加一个包含标志才能让它最终工作。CUDA_NVCC_FLAGS:-I/ home/bill /NVIDIA_GPU_Computing_SDK/C/common/inc
注意:-I/ $HOME /NVIDIA_GPU_Computing_SDK/C/common/inc不起作用。(环境 $HOME 设置正确。)