c++ - C++ CUDA语法错误'<'

  显示原文与译文双语对照的内容

在 test.cu 文件中( 光标项类型为 CUDA c/C++ )


__global__ void foo()


{


}



void CudaMain()


{



 foo<<<1,1>>>();


}



在我的test.cpp 文件中


#include"mycuda.cu"



int main()


{



CudaMain();


return 0;



}



compilator在 test.cu 文件中给我发送错误"错误消息C2059语法错误'<'"

时间: 原作者:

包含在 C++ 文件中的not源文件不起作用,因为这只是 C++ 程序代码和常规 C++ 编译器的一部分。 如果你仍然希望将你的rtc代码与非 rtc C++ 代码分开,那么你可以能希望查看单独的编译。 可以将CUDA源代码编译为常规对象文件,然后可以与其他对象文件链接以生成可以执行文件。

修改 C++ 代码以读取:


extern void CudaMain(void);



int main()


{


 CudaMain();


 return 0;


}



使用 nvcc 编译rtc文件,使用 C++ 编译器的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++



编辑:你的问题是关于 VS2010. 你必须在那里创建定制的构建步骤。

原作者:
...