我正在尝试将cpp文件转换为.cu文件。但是,编译器报告cpp中所有typedef和static函数的错误。它也不会检测范围解析运算符并报告它们的错误。
答案 0 :(得分:2)
CUDA对预处理器宏的扩展方式进行了一些重大更改,因为它通过预处理器多次运行代码以扩展CUDA结构并分离主机和设备代码。这可能会破坏现有的大型代码库。
我在这种情况下的一般策略(甚至是新编写的项目)一直是将所有现有代码保存在.cpp文件中,并且只将尽可能少的代码移动到.cu文件中。我只是移动typedef并将.cu文件和.cpp文件中需要的文件定义到单独的头文件中,然后编写围绕CUDA调用和内核启动的小包装器函数,然后从现有的.cpp文件中调用它们。