我正在尝试使用ubuntu 12.04
在nsight上编译CUDA 5.5应用程序首先,我遇到了有关#include <helper_cuda_drvapi.h>
要解决此问题,我已将路径/usr/include/samples/common/inc
添加到我的包含列表中。
这解决了丢失的头文件问题,但引发了一个新问题。
当尝试在nsight上编译程序时,我收到以下错误
/usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:278:对
cuInit' /usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:279: undefined reference to
cuDeviceGetCount'的未定义引用 /usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:290:对cuDeviceGetName' /usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:291: undefined reference to
cuDeviceComputeCapability'的未定义引用 /usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:294:对cuDeviceGetAttribute' /usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:327: undefined reference to
cuDeviceGetAttribute'的未定义引用 /usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:330:对cuDeviceGetAttribute' /usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:333: undefined reference to
cuDeviceComputeCapability的未定义引用 /usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:336:对`cuDeviceGetAttribute'的未定义引用
有什么建议吗?
提前致谢
***************** UPDATE ************
它基本上归结为我正在尝试在linux上编译“CUDA视频解码器GL API”示例程序,但由于头文件有些错误而无法正常工作。有谁知道这是为什么?
更新
答案 0 :(得分:1)
未定义的引用是针对CUDA驱动程序API方法的。 helper_cuda_drvapi.h
在顶部附近有以下评论:
辅助函数用于CUDA驱动程序API错误处理(确保CUDA_H包含在您的项目中)
因此,在.cu
和.cpp
文件中,在#include <helper_cuda_drvapi.h>
之前,请添加cuda.h
:
#include "cuda.h"
#include <helper_cuda_drvapi.h>
有关CUDA标头的详细信息,请参阅this question。
答案 1 :(得分:1)
您需要手动链接libcuda(Nsight项目使用Runtime API)
要与此库链接:
cuda
(不带前缀或后缀 - 理论上应该使您的项目更具clossplatform。您可能还需要在添加时添加“添加到所有配置”库 - 否则它将用于您当前的构建配置(例如“Debug”或“Release”)。更新:项目设置截图: