0

我正在尝试使用 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 tocuDeviceGetCount' 的引用 /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 tocuDeviceComputeCapability'/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 tocuDeviceGetAttribute'/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 tocuDeviceComputeCapability'/usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:336 的引用:对 'cuDeviceGetAttribute' 的未定义引用

有什么建议么?

提前致谢

*****************更新************

它基本上归结为我正在尝试在 linux 上编译“CUDA Video Decoder GL API”示例程序,但由于头文件存在一些错误,它无法正常工作。有人知道为什么吗?

更新

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

1

您需要手动与 libcuda 链接(Nsight 项目使用 Runtime API)

要与此库链接:

  1. 转到项目的属性,打开常规/路径和符号
  2. 选项卡上添加cuda(不带前缀或后缀 - 理论上应该使您的项目更加 clossplatform。添加库时您可能还需要检查“添加到所有配置” - 否则它将用于您当前的构建配置(例如“调试”或“仅发布”)。

更新:项目设置截图: 在此处输入图像描述

于 2013-11-04T22:01:43.243 回答
1

未定义的引用是对 CUDA 驱动程序 API 方法的引用。helper_cuda_drvapi.h在顶部附近有以下评论:

用于 CUDA Driver API 错误处理的辅助函数(确保 CUDA_H 包含在您的项目中)

因此,在您的.cu.cpp文件中,在 之前#include <helper_cuda_drvapi.h>,包括cuda.h

#include "cuda.h"
#include <helper_cuda_drvapi.h>

有关 CUDA 标头的更多信息,请参阅此问题

于 2013-11-04T05:28:45.297 回答