查找CUDA_SDK_根目录

查找CUDA_SDK_根目录,cuda,cmake,point-clouds,point-cloud-library,Cuda,Cmake,Point Clouds,Point Cloud Library,我正在尝试设置启用CUDA选项的主干构建 我相信我已经正确安装了CUDA,如下所示 在PCL生成的cmake选项中,某些选项无法识别: 是否可以手动将CUDA\u SDK\u ROOT\u DIR设置为?同样,对于其他未找到的选项。CUDA_SDK_ROOT_DIR应设置为安装NVIDIA的GPU计算SDK的方向。GPU计算SDK可从下载CUDA的NVIDIA的同一页面下载。默认情况下,此SDK将安装到$HOME/NVIDIA\u GPU\u Computing\u SDK。适当地设置它,然后

我正在尝试设置启用CUDA选项的主干构建

我相信我已经正确安装了CUDA,如下所示

在PCL生成的cmake选项中,某些选项无法识别:


是否可以手动将
CUDA\u SDK\u ROOT\u DIR
设置为?同样,对于其他未找到的选项。

CUDA_SDK_ROOT_DIR
应设置为安装NVIDIA的GPU计算SDK的方向。GPU计算SDK可从下载CUDA的NVIDIA的同一页面下载。默认情况下,此SDK将安装到
$HOME/NVIDIA\u GPU\u Computing\u SDK
。适当地设置它,然后重新运行cmake

编辑:

CUDA_SDK_ROOT_DIR
变量实际上是在查找包含您正在使用的CUDA版本的
$HOME/NVIDIA_GPU_Computing_SDK
下的子目录。对我来说,这是
$HOME/NVIDIA\u GPU\u Computing\u SDK/CUDA/v4.1

的源代码提供了有关如何找到此路径的一些提示:

########################
# 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模块中的“查找路径”选项:(usr/share/cmake-2.8/Modules/FindCUDA.cmake)

cmake现在会自动找到我的4.0 SDK。
但是我的身体仍然找不到cutil.h,即使它在那里$HOME/NVIDIA_GPU_Computing_SDK/C/common/inc/cutil.h。我必须为项目添加一个include标志,以使其最终工作。CUDA_NVCC_标志:-I/home/bill/NVIDIA_GPU_Computing_SDK/C/common/inc

注意:-I/$HOME/NVIDIA_GPU_Computing_SDK/C/common/inc不起作用。(env$HOME设置正确。)

我对您正在构建的项目没有任何经验,但对于CUDA_SDK_ROOT_DIR,请将其设置为SDK安装程序将其内容写入的目录,如果您接受默认选项,通常是您的主目录。我认为您可以安全地忽略其他未设置的选项,它们应用于运行时API的现已弃用和删除的CUDA设备仿真功能。正如我所知,CUDA_SDK_ROOT_DIR是由系统变量获取的(不是由FindCuda设置的)。因此,如果您不想通过系统变量设置它,您可以为cmake设置它。此默认值是正常值,c CUDA可以使用它。7.5中不再是这种情况?
########################
# 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"
)