【问题标题】:More than one instance of overloaded function多个重载函数实例
【发布时间】:2018-05-28 02:35:08
【问题描述】:

我正在尝试在使用 CUDA 8.0 和 clang 3.8 的 Ubuntu 系统上编译一个使用 CUDA 的库。 该库在几个*.cu 文件中包含Eigen 标头,其中显然包含cmath 标头,从而导致CUDA 标头不明确。

/usr/local/cuda-8.0/include/cuda_fp16.h(3068): error: more than one instance of overloaded function "isinf" matches the argument list:
            function "std::isinf(float)"
            function "isinf(float)"
            argument types are: (float)

CUDA 定义了自己的__device__ ​ __RETURN_TYPE isinf ( float a ),我希望std::isinf 必须被显式调用而不是产生冲突。

对此的任何线索将不胜感激。

【问题讨论】:

    标签: c++ compilation cuda clang


    【解决方案1】:

    我记得,这实际上是一个 Clang 问题。使用 Clang 3.8 和 gcc 6 标准库头文件在 C++11 模式下编译会触发问题。如果切换到支持的 gcc 5 版本,或者不指定 C++11 支持,问题就会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-28
      • 2012-10-12
      • 2021-10-11
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      相关资源
      最近更新 更多