VS2010编译器和cuda错误:链接规范与以前的“hypot”不兼容

时间:2010-09-10 15:08:38

标签: visual-studio-2010 cuda nvcc

当我尝试在调试64位配置中使用VS 2010在64位Windows 7上构建项目时,我得到此错误以及其他两个错误。

错误:链接规范与math.h第161行中之前的“hypot”不兼容 错误:链接规范与math.h第161行中的先前“hypotf”不兼容 错误:函数“abs(long long)”已在math_functions.h第534行中定义

我没有在32位版本中获得这些错误。此外,64位版本在VS2008中运行。有没有正确的解决这个问题的工作,还是应该等到nvcc支持VS 2010编译器?

1 个答案:

答案 0 :(得分:1)

是的,这在VS2010中有所改变:

/* hypot and hypotf are now part of the C99 Standard */
static __inline double __CRTDECL hypot(_In_ double _X, _In_ double _Y)
{
    return _hypot(_X, _Y);
}

不确定abs()错误,行号看起来不对。 math_functions.h标头不再与VS2010兼容,需要付出代价。回顾仍需要#include math.h的需要,它应该在功能上被Cuda取代。黑客攻击标题是解决问题的另一种方法,直到他们修复它:

#if !defined(_MSC_VER) || _MSC_VER < 0x1400
    // hypotf definition here...
#endif