繁体   English   中英

一个简单的cuda编译错误

[英]Error in a simple cuda compilation

FSPB_main.cpp

int main(int args, char* argv[]){    
    .......   

   float *d_a;   
   cudaMalloc( (void**)&d_a, 5*sizeof(float) );

}

$ nvcc -L / usr / local / cuda / lib -lcutil -lcudpp -lcuda -lcudart -c -o FSPB_main.o FSPB_main.cpp

FSPB_main.cpp:在函数'int main(int,char **)'中:FSPB_main.cpp:167:45:错误:在此范围内未声明'cudaMalloc'

这个错误是什么意思? 它只是一个cudaMalloc,它应该被编译器支持吗?

诸如cudaMalloc之类的功能可以在.cpp文件中使用吗? 我是否需要为CUDA中的任何内容创建一个.cu文件?

您需要包括声明CUDA函数的头文件:

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

然后在cmd行上,还需要添加包含这些文件的PATH(选项-I )。

在我的系统上,CUDA的2.1版在/usr/local/cuda上安装了头文件。 要进行编译,我将执行以下操作:

nvcc -I/usr/local/cuda/include -L/usr/local/cuda/lib -lcutil -lcudpp -lcuda -lcudart -c -o FSPB_main.o FSPB_main.cpp

不要忘记添加-I. 如果您的代码依赖于您编写的位于源代码相同目录中的自定义标头,则可以使用该命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM