我正在尝试使用我的发行版的默认编译器 GCC 6.2.1 构建一些 CUDA 代码(注意:不是 CUDA 正式支持的 GCC 版本,因此您可以将此称为实验性版本)。这是与 GCC 4.9.3 以及 CUDA 版本 7.5 和 8.0 一起构建的代码。
好吧,如果我构建以下(接近)最小示例:
#include <tuple>
int main() { return 0; }
使用命令行
nvcc -std=c++11 -Wno-deprecated-gpu-targets -o main main.cu
我收到以下错误:
/usr/local/cuda/bin/../targets/x86_64-linux/include/math_functions.h(8897): error: cannot overload functions distinguished by return type alone
/usr/local/cuda/bin/../targets/x86_64-linux/include/math_functions.h(8901): error: cannot overload functions distinguished by return type alone
2 errors detected in the compilation of "/tmp/tmpxft_000071fe_00000000-9_b.cpp1.ii".
这是为什么?我怎样才能纠正/规避这个?