gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:20 26 4
gpt4 key购买 nike

在我的test.cu文件中(cu文件项类型是CUDA C/C++)

__global__ void foo()
{
}

void CudaMain()
{

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

在我的 test.cpp 文件中

#include "mycuda.cu"

int main()
{

CudaMain();
return 0;

}

编译器在 test.cu 文件中向我发送错误“error c2059 syntax error '<'”

最佳答案

在 C++ 文件中包含 CUDA 源文件不起作用,因为这只会使 CUDA 源成为 C++ 程序代码的一部分,而常规 C++ 编译器不理解 CUDA 语法扩展。如果您仍然希望将 CUDA 代码与非 CUDA C++ 代码分开,那么您可能需要研究单独的编译。 CUDA 源代码可以编译为常规目标文件,然后可以将其与其他目标文件链接以生成可执行文件。

修改C++代码为:

extern void CudaMain(void);

int main()
{
CudaMain();
return 0;
}

使用 nvcc 编译 CUDA 文件,使用 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 的。可能您必须在那里创建自定义构建步骤。

关于c++ - CUDA 语法错误 '<',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com