cuda工程更换环境(电脑)后遇到的一系列编译问题

环境说明

原环境:cuda10.0

新环境:cuda10.2

虽然说这两个版本很接近,但是直接把cuda10.0的工程打包到10.2中运行会遇到一系列问题。由于刚接触cuda不就,将这些问题都稍微微写写。

问题一:无法加载工程

初次打开从10.0拷贝过来的工程vs提示加载失败
在这里插入图片描述
解决方法:右键单击项目名称—>>编辑,在打开的页面中搜索 10.0 全部替换成 10.2 (原来的cuda是10.0版,新环境是10.2版)
这是cuda版本不一致造成的
在这里插入图片描述

问题二:找不到h、lib文件

h文件有的是自己写的,有的是cuda自带的,需要分别添加这两种h文件的路径
lib文件也是由于没有添加路径导致报错
解决方法:右键项目名称–>>属性–>>配置属性–>>vc++目录 打开以后能看到许多目录,这里要用的是包含目录和库目录,将h文件的路径添加到包含目录下,将lib文件的目录添加到库目录下
在这里插入图片描述

问题三:无法识别的外部符号

解决了问题二以后再次编译,提示无法识别的外部符号,都是一些常用的cuda函数如cudaEventCreate、cudaEventSynchronize等
解决方法:右键项目名称–>>属性–>>配置属性–>>链接器–>>附加依赖项 添加需要的cuda库文件名
在这里插入图片描述
一些常用的有:
cublas.lib
cuda.lib
cudadevrt.lib
cudart_static.lib
cudart.lib
注意:如果有自己写的lib文件也要在这里添加

问题四:找不到dll文件

这里分两种情况:一种是自己写的dll文件;另一种是cuda自带的dll文件

第一种情况:最简单的解决方法就是将自己写的dll文件复制到项目的输出文件夹下,也就是生成exe文件的地方

第二种情况:找到cuda的安装目录,参考下图,最后打开bin文件夹
在这里插入图片描述
根据提示的信息进行以下操作,比如我提示的是找不到cudart64_100.dll文件和cublas64_100.dll文件
找到bin文件夹下的和提示的找不到的dll文件名相似的文件,比如找不到cudart64_100.dll,但是bin文件夹下存在cudart64_102.dll文件,那么复制一份cudart64_102.dll文件改名成cudart64_100.dll,同样放在bin文件夹下。cublas64_100.dll文件一样操作,上图是复制完成以后的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值