cuda纹理声明编译时错误

cuda纹理声明编译时错误,cuda,textures,Cuda,Textures,我正在尝试编译以下代码: #include <stdio.h> #include <time.h> #include <cuda.h> #include <cuda_runtime_api.h> texture<float, 2, cudaReadModeElementType> tex; int main () { ... } #包括 #包括 #包括 #包括 纹理纹理; int main(){…} 然而,nvcc给了我以下错误

我正在尝试编译以下代码:

#include <stdio.h>
#include <time.h>
#include <cuda.h>
#include <cuda_runtime_api.h>

texture<float, 2, cudaReadModeElementType> tex;

int main () { ... }
#包括
#包括
#包括
#包括
纹理纹理;
int main(){…}
然而,nvcc给了我以下错误:

main.c:6:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token

main.c:6:8:错误:应为“=”、“、”、“;”、”asm'或'.\u'.\u属性'.\u'之前'只能在.cu文件中使用CUDA语法。

只能在.cu文件中使用CUDA语法。

只能在
.cu
文件中使用CUDA语法。是的,我从
main.c
切换到
main.cu
,现在它可以工作了。谢谢!您只能在
.cu
文件中使用CUDA语法。是的,我从
main.c
切换到
main.cu
,现在它可以工作了。谢谢!实际上,纹理声明只是一个C++模板实例化,而不是任何CUDA特定的。如果使用C++而不是C编译器,则代码将编译,在这种特殊情况下不需要NVCC或A.Cu扩展。实际上,纹理声明只是C++模板实例化,而不是任何CUDA特定的。如果使用C++而不是C编译器,则代码将编译,在这种特殊情况下不需要NVCC或A.Cu扩展。