问题一:无法解析的外部符号 ___cudaUnregisterFatBinary@4
描述:
1>CUDAdll.cu.obj : error LNK2019:无法解析的外部符号 ___cudaUnregisterFatBinary@4,该符号在函数 "void __cdecl __cudaUnregisterBinaryUtil(void)" (?__cudaUnregisterBinaryUtil@@YAXXZ)中被引用
1>D:\elec\mymfctest\VS2010p\GPUDemos\CUDAdlltest\Debug\CUDAdlltest.dll : fatal error LNK1120: 2个无法解析的外部命令
原因:意思是链接的时候出错了,找不到链接外部符号,原因是缺少cuda的运行库,通过项目的链接输入中添加CUDA的运行库cudart.lib可以解决。
解决方案:
至此,在没有编辑cuda函数实现文件的情况下可以正常将项目编译成功,则表明基本上将CUDAdll的框架搭建成功了。
详见:
至此,在没有编辑cuda函数实现文件的情况下可以正常将项目编译成功,则表明基本上将CUDAdll的框架搭建成功了。
详见:CUDA dll怎么创建 测试在VS平台将CUDA相关的函数封装成dll库
问题二:如何使用cublas库
解决方案:需要添加在vc++目录中包含目录和库目录中添加cublas目录,并在链接--输入---附加依赖性中添加“cublas.lib”
问题三:在c++项目中添加cuda应用时,没有cudac++类型编译选项,即.cu文件无法编译怎么办?
解决方案:
至此,在没有编辑cuda函数实现文件的情况下可以正常将项目编译成功,则表明基本上将CUDAdll的框架搭建成功了。
Project | Build Customizations… 菜单,在对话框中选择 CUDA 4.0 ,这会添加对 CUDA C/C++ 文件( *.cu )
更多内容可参考这篇博客:vs2010 中CUDA 4.0的安装与配置
至此,在没有编辑cuda函数实现文件的情况下可以正常将项目编译成功,则表明基本上将CUDAdll的框架搭建成功了。
CUDA常见问题及解决方案总结
本文总结了CUDA开发中遇到的三个问题:1)无法解析的外部符号 ___cudaUnregisterFatBinary@4,解决方法是添加cudart.lib;2)如何使用cublas库,需要添加cublas目录并链接cublas.lib;3)C++项目中缺少cudac++编译选项,通过VS配置解决。这些问题的解决有助于CUDA项目的顺利进行。
1044

被折叠的 条评论
为什么被折叠?



