cuda 纹理内存texture使用时显示不是模板解决办法

按教程使用纹理内存texture时显示 texture不是模板。

网上找了半天,只知道这个报错是VS没有识别的问题,运行起来并没有实质性影响。

但是一条红线在这画着总觉得很别扭,于是就想取消它,最终给我找到了,解决方法就是在主程序前面加几句废话

根据网上提示找到文件cuda_texture_types.h,可以看到texture的模板是在这里定义的。 

网上说的没错,但是往上翻。。

有这么一段,看一下显示__CUDACC__没有定义。

于是在主程序第一行加入这个宏定义。

像这样,texture就不报错了,但是会有一个warning。

其实可以说明,这个texture会显示不是模板是因为cuda定义了它但是可能VS前面没有识别到。

不过系统的不管,为了自己的程序一定要 0 ERROR,0 Warning。所以最后把加在主程序的定义改成条件定义。

#ifndef __CUDACC__
#define __CUDACC__
#endif // !__CUDACC__
#include "cuda_texture_types.h"

 我的程序前面看起来是这样的

 不加cuda_texture_types.h,然后把这一段宏定义放在cuda的各种include前面其实texture也不红了,只不过我发现texture不报红了,__global__爆红了,,这个定义在里面应该用的挺多的,,为了整体不报红就是这个样子了。

 VS识别的时候,认为__CUDACC__没有定义,所以需要定义。在程序真正执行的时候,因为已经定义过了,所以没有执行,所以说是废话,不过没有红线看起来还是舒服的。。。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值