我试图编译它使用cusparse库CUDA程序。 我收到链接错误:
kernel.cu.obj : error LNK2019: unresolved external symbol _cusparseSetMatIndexBase@8 referenced in function _main
和很多相关的同类的错误来cusparse库。 我已经包括“cusparse_v2.h”。 我如何cusparse库在Visual Studio 2010编译期间链接?
我试图编译它使用cusparse库CUDA程序。 我收到链接错误:
kernel.cu.obj : error LNK2019: unresolved external symbol _cusparseSetMatIndexBase@8 referenced in function _main
和很多相关的同类的错误来cusparse库。 我已经包括“cusparse_v2.h”。 我如何cusparse库在Visual Studio 2010编译期间链接?
用于链接库的一般说明是不特定于CUDA。 所以,你可能想了解更多有关使用MS VS 。 总之,步骤是这样的:
cudart.lib
应该已经存在那里。 cudart.lib
现在,您可以输入新的库添加。 键入一个空间(从cudart.lib分离),然后键入cusparse.lib
这应该是已需要的,如果您的项目/解决方案文件已经设置了使用CUDA模板的所有。 如果cudart.lib不存在,或您的项目/解决方案文件已经不理解CUDA,那是另外一个问题。 在这种情况下,我会建议重新开始,从样本克隆项目,并使用生成项目,作为一个起点。 然后,它会拿起所有正确的目录搜索以及CUDA的生成规则。 由于所有主要的CUDA库(cudart,CUBLAS,CUFFT,cusparse等)都在同一个位置,需要相同的搜索路径应该选择其中的任何向上。
如果你想要把另一个库,如cublas.lib
,例如,你可以遵循相似的序列,替换cusparse.lib
以上cublas.lib
请注意,CUDA(例如CUDA 7.5)的较新版本将有必要只建立一个64位的项目(修改的x64项目属性时按照上面的步骤。)CUDA 7.5及以后在下降为32位的项目的支持。
我固定它通过以下步骤:
加入CUDA路径:转到:“配置属性 - >连接器 - >常规 - >附加Libary目录”,并添加$(CudaToolkitLibDir)到列表中。
加入CUDA实时库:进入:“解决方案属性 - >连接器 - >输入 - >附加依赖”,并添加cudart.lib到列表中。
添加CUBLAS库:进入:“解决方案属性 - >连接器 - >输入 - >附加依赖”,并添加cublas.lib到列表中。
更改平台到x64:转到:“配置属性 - >平台”,并将其设置为64。
运行CMD.EXE作为管理员。 键入并运行命令的以下两行:
的netsh winsock的重置目录
netsh的INT IP复位reset.log命中
它可以说是一个需要重新启动,但实际上是没有必要的。 再次尝试调试应用程序,这个问题应该得到解决。