链接问题CUDA 5.5 nsight

链接问题CUDA 5.5 nsight,cuda,linker,include,header-files,nsight,Cuda,Linker,Include,Header Files,Nsight,我正试图用ubuntu 12.04在nsight上编译一个CUDA 5.5应用程序 起初,我遇到了一个关于缺少头文件的问题,例如#include 为了解决这个问题,我将路径/usr/include/samples/common/inc添加到我的includes列表中 这解决了缺少头文件的问题,但导致了新的问题 当试图在nsight上编译程序时,我得到以下错误 /usr/local/cuda-5.5/samples/common/inc/helper\u cuda\u drvapi.h:278:未

我正试图用ubuntu 12.04在nsight上编译一个CUDA 5.5应用程序

起初,我遇到了一个关于缺少头文件的问题,例如
#include

为了解决这个问题,我将路径
/usr/include/samples/common/inc
添加到我的includes列表中

这解决了缺少头文件的问题,但导致了新的问题

当试图在nsight上编译程序时,我得到以下错误

/usr/local/cuda-5.5/samples/common/inc/helper\u cuda\u drvapi.h:278:未定义对
cuInit'的引用
/usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:279:未定义对
cuDeviceGetCount'的引用 /usr/local/cuda-5.5/samples/common/inc/helper\u cuda\u drvapi.h:290:未定义对
cuDeviceGetName'的引用
/usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:291:未定义对
cuDeviceComputeCapability'的引用 /usr/local/cuda-5.5/samples/common/inc/helper\u cuda\u drvapi.h:294:未定义对
cuDeviceGetAttribute'的引用
/usr/local/cuda-5.5/samples/common/inc/helper\u cuda\u drvapi.h:327:未定义对
cuDeviceGetAttribute'的引用 /usr/local/cuda-5.5/samples/common/inc/helper\u cuda\u drvapi.h:330:未定义对
cuDeviceGetAttribute'的引用
/usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:333:未定义对
cuDeviceComputeCapability'的引用 /usr/local/cuda-5.5/samples/common/inc/helper_cuda_drvapi.h:336:对“cuDeviceGetAttribute”的未定义引用

有什么建议吗

提前谢谢

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

基本上可以归结为,我正在尝试在linux上编译“CUDA视频解码器GL API”示例程序,但由于头文件出错,该程序无法正常工作。有人知道这是为什么吗

更新


未定义的引用是对CUDA驱动程序API方法的引用
helper\u cuda\u drvapi.h
顶部附近有以下注释:

用于CUDA驱动程序API错误处理的帮助函数(确保CUDA_H包含在项目中)

因此,在
.cu
.cpp
文件中,在
#include
之前,包含
cuda.h

#include "cuda.h"
#include <helper_cuda_drvapi.h>
#包括“cuda.h”
#包括

有关CUDA标头的更多信息,请参阅。

您需要手动链接到libcuda(Nsight项目使用运行时API)

要链接到此库,请执行以下操作:

  • 转到项目的属性,打开常规/路径和符号
  • 在“库”选项卡上添加
    cuda
    (不带前缀或后缀-理论上,这会使您的项目更接近平台。添加库时,您可能还希望选中“添加到所有配置”-否则它将用于您当前的生成配置(例如,“调试”或“发布”)
  • 更新:项目设置屏幕截图:

    尝试在
    helper\u cuda\u drvapi.h
    之前包含
    cuda.h
    cuda\u runtime.h
    。我看到他们用nvcc解决了这个问题,但我不认为有办法设置首先用它编译的内容nsight@RogerDahl我相信你的评论是正确的。OP显然不理解这一点,也不理解nsi之间的区别ght EE和nvcc。你能把你的评论扩展成一个答案吗?我会投赞成票。@RobertCrovella,in,@talonmes提到nvcc自动包含所需的标题。我猜
    helper\u cuda\u drvapi.h
    ,作为示例框架的一部分,只用于
    .cu
    文件,因此不包含cuda.h本身?我已经这样做了,但当我在NSights中编译程序时,仍然会遇到同样的错误。我也这样做了,我开始认为最终它是因为DirectX而在windows上运行的,但它在Linux上不工作,因为它不支持DirectXI。我在Linux上测试了它。只是为了确定-我都添加了
    #include
    ,作为Roger建议并添加了
    -lcuda
    链接器标志。请等待您获得了要在linux上运行的“CUDA视频解码器GL API”。如果是,请告诉我您用于使其工作的确切命令否,我只包含了该标题,复制了错误消息,然后修复了编译问题。您可以从控制台视图粘贴整个nvcc调用吗?