当我尝试在调试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编译器?
答案 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