【问题标题】:CUDA compiler warning about unrecognized GCC pragma关于无法识别的 GCC 编译指示的 CUDA 编译器警告
【发布时间】:2014-05-11 20:47:40
【问题描述】:

CUDA 文件中有一些 C++ 代码使用了这个 pragma:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-result"
    void foobar()
    {
        // some code
    }
#pragma GCC diagnostic pop

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

foobar.cu(420): warning: unrecognized GCC pragma

看起来 CUDA 编译器理解这是一个 GCC 编译指示。我不知道为什么它试图理解所有 GCC 编译指示。有什么方法可以修复此警告或使此警告消失?

更新:请注意,将 -Xcudafe "--diag_suppress=unrecognized_pragma" 选项传递给 nvcc 编译器似乎没有任何效果。

【问题讨论】:

标签: cuda compiler-warnings nvcc


【解决方案1】:

如the duplicate question所示,需要将以下标志传递给nvcc:

-Xcudafe "--diag_suppress=unrecognized_pragma"

【讨论】:

  • 感谢您指出此编译器选项。令人惊讶的是,我添加此内容后仍然收到警告。
【解决方案2】:

试试这个:

-Xcudafe "--diag_suppress=unrecognized_gcc_pragma"

【讨论】:

  • 谢谢!那行得通。我可以知道我应该在哪里寻找这样的标志吗?以防万一,我以后需要忽略不同的警告:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-27
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多