链接问题CUDA 5.5 nsight

时间:2013-11-02 01:04:40

标签: cuda linker include header-files nsight

我正在尝试使用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”示例程序,但由于头文件有些错误而无法正常工作。有谁知道这是为什么?

更新

enter image description here

enter image description here

enter image description here

enter image description here

2 个答案:

答案 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)

要与此库链接:

  1. 转到项目的属性,打开常规 / 路径和符号
  2. Libraries 标签上添加cuda(不带前缀或后缀 - 理论上应该使您的项目更具clossplatform。您可能还需要在添加时添加“添加到所有配置”库 - 否则它将用于您当前的构建配置(例如“Debug”或“Release”)。
  3. 更新:项目设置截图: enter image description here