CUDA编译器关于无法识别的GCC pragma的警告 CUDA文件中有一些C++代码,使用这个语法: #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-result" void foobar() { // some code } #pragma GCC diagnostic pop

CUDA编译器关于无法识别的GCC pragma的警告 CUDA文件中有一些C++代码,使用这个语法: #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-result" void foobar() { // some code } #pragma GCC diagnostic pop,cuda,compiler-warnings,nvcc,Cuda,Compiler Warnings,Nvcc,使用CUDA 5.5 nvcc编译器编译此CUDA文件时,主机编译器阶段正常,但设备编译器阶段产生以下警告: foobar.cu(420): warning: unrecognized GCC pragma 看起来CUDA编译器理解这是一个GCC pragma。我不知道为什么它试图理解所有GCC术语。是否有任何方法修复此警告或使此警告消失 更新:请注意,将-Xcudafe”--diag\u suppress=unrecogned\u pragma“选项传递给nvcc编译器似乎没有任何效果。如中

使用CUDA 5.5 nvcc编译器编译此CUDA文件时,主机编译器阶段正常,但设备编译器阶段产生以下警告:

foobar.cu(420): warning: unrecognized GCC pragma
看起来CUDA编译器理解这是一个GCC pragma。我不知道为什么它试图理解所有GCC术语。是否有任何方法修复此警告或使此警告消失

更新:请注意,将
-Xcudafe”--diag\u suppress=unrecogned\u pragma“
选项传递给nvcc编译器似乎没有任何效果。

如中所示,您需要将以下标志传递给nvcc:

-Xcudafe "--diag_suppress=unrecognized_pragma"
试试这个:

-Xcudafe "--diag_suppress=unrecognized_gcc_pragma"

可能重复感谢您指出此编译器选项。令人惊讶的是,在我添加这个之后,我仍然收到警告。谢谢!成功了。我可以知道在哪里可以找到这样的旗帜吗?在这种情况下,我需要在将来忽略另一个警告:)