Visual studio 2010 如何在windows上为CUDA链接库(如CUBLAS、CUSPARSE)

Visual studio 2010 如何在windows上为CUDA链接库(如CUBLAS、CUSPARSE),visual-studio-2010,compilation,linker,cuda,Visual Studio 2010,Compilation,Linker,Cuda,我正在尝试编译一个cuda程序,它使用cusparse库。我收到链接错误: kernel.cu.obj : error LNK2019: unresolved external symbol _cusparseSetMatIndexBase@8 referenced in function _main 还有很多与cusparse库相关的同类错误。我已经包括了“cusparse_v2.h”。 如何在编译期间链接visual studio 2010中的cusparse库?链接库的一般说明并不特定于

我正在尝试编译一个cuda程序,它使用cusparse库。我收到链接错误:

kernel.cu.obj : error LNK2019: unresolved external symbol _cusparseSetMatIndexBase@8 referenced in function _main
还有很多与cusparse库相关的同类错误。我已经包括了“cusparse_v2.h”。
如何在编译期间链接visual studio 2010中的cusparse库?

链接库的一般说明并不特定于CUDA。因此,您可能想了解更多。无论如何,步骤如下:

  • 确保已打开要处理的项目
  • 选择查看…属性页(从菜单中),将打开一个新对话框
  • 在此对话框的左侧,选择链接器以打开其子菜单
  • 在链接器下,选择输入
  • 现在,在右边的窗格中,观察第一项,即“附加依赖项”。我相信
    cudart.lib
    应该已经存在了
  • 单击
    cudart.lib
    右侧,现在可以键入要添加的新库。键入空格(与cudart.lib分开)并键入
    cusparse.lib
  • 现在单击对话框右下角的“应用”
  • 如果您的项目/解决方案文件已经使用cuda模板设置好,那么这就是所需的全部内容。如果cudart.lib不存在,或者您的项目/解决方案文件尚未理解cuda,则这是另一个问题。在这种情况下,我建议重新开始,从样本中克隆一个项目,并以此为起点构建您的项目。然后,它将选择所有适当的目录进行搜索,以及cuda构建规则。由于所有主要的cuda库(cudart、cublas、CUVT、CUSPASE等)都位于同一位置,因此根据需要,相同的搜索路径应该选择其中任何一个

    如果您想链接另一个库,例如
    cublas.lib
    ,您可以按照类似的顺序,将上面的
    cusparse.lib
    替换为
    cublas.lib


    请注意,对于较新版本的CUDA(例如CUDA 7.5),只需构建64位项目(修改x64项目属性时请遵循上述步骤)。CUDA 7.5及更高版本正在放弃对32位项目的支持。

    我通过以下步骤修复了它:

  • 添加cuda路径: 转到:“配置属性->链接器->常规->附加库目录”并将$(CudaToolkitLibDir)添加到列表中

  • 添加cuda实时库: 转到:“解决方案属性->链接器->输入->其他依赖项”,并将cudart.lib添加到列表中

  • 添加cublas库: 转到:“解决方案属性->链接器->输入->其他依赖项”,并将cublas.lib添加到列表中

  • 将平台更改为x64: 转到:“配置属性->平台”,并将其设置为x64

  • 以管理员身份运行cmd.exe。 键入并运行以下两行命令:

  • netsh winsock重置目录

    netsh int ip reset reset.log命中

    它可能会说需要重新启动,但实际上没有必要。
    再次尝试调试应用程序时,问题应该得到解决。

    除了包含头文件外,还需要链接到库。CUDA示例包中有几个cusparse示例,例如,将向您展示如何链接到cusparse并提供一个带有MS VS项目文件的示例项目。我能够运行共轭梯度示例。这次我什么也没做。构建(f7)+运行(f5),它运行完全正常。如何发现它是如何链接的?