Ala*_*ste 6 c++ cuda visual-studio-2010
在我的test.cu文件中(cu文件项类型是CUDA C/C++)
__global__ void foo()
{
}
void CudaMain()
{
foo<<<1,1>>>();
}
Run Code Online (Sandbox Code Playgroud)
在我的test.cpp文件中
#include "mycuda.cu"
int main()
{
CudaMain();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和compilator在test.cu文件中发送错误"错误c2059语法错误'<'"
在 C++ 文件中包含 CUDA 源文件不起作用,因为这只会使 CUDA 源成为 C++ 程序代码的一部分,并且常规 C++ 编译器无法理解 CUDA 语法扩展。如果您仍然希望将 CUDA 代码与非 CUDA C++ 代码分开,那么您可能需要考虑单独编译。CUDA 源代码可以编译为常规目标文件,然后可以与其他目标文件链接以生成可执行文件。
将C++代码修改为:
extern void CudaMain(void);
int main()
{
CudaMain();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用 C++ 编译器编译 CUDA 文件nvcc,C++ 代码,然后将生成的目标文件链接到nvcc(您可能还需要在链接命令中指定标准 C++ 库):
$ nvcc -c -o test_cuda.o test.cu
$ g++ -c -o test_cpp.o test.cpp
$ nvcc -o test.exe test_cuda.o test_cpp.o -lstdc++
Run Code Online (Sandbox Code Playgroud)
编辑:你的问题是关于VS2010的。可能您必须在那里创建自定义构建步骤。
| 归档时间: |
|
| 查看次数: |
8160 次 |
| 最近记录: |