Visual studio 2010 VS2010编译器和cuda错误:链接规范与以前的“;hypot”;

Visual studio 2010 VS2010编译器和cuda错误:链接规范与以前的“;hypot”;,visual-studio-2010,cuda,nvcc,Visual Studio 2010,Cuda,Nvcc,当我在调试64位配置中使用VS 2010在64位Windows 7上构建项目时,我会遇到此错误以及其他两个错误 错误:连杆规格与数学h第161行中先前的“hypot”不兼容 错误:连杆规格与math.h第161行中先前的“hypotf”不兼容 错误:函数“abs(long-long)”已在数学函数中定义。第534行 我在32位构建中没有得到这些错误。此外,64位构建在VS2008中也起作用。是否有解决此问题的适当方法,或者我应该等到nvcc支持VS 2010编译器吗?是的,这在VS2010中已更

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

错误:连杆规格与数学h第161行中先前的“hypot”不兼容 错误:连杆规格与math.h第161行中先前的“hypotf”不兼容 错误:函数“abs(long-long)”已在数学函数中定义。第534行


我在32位构建中没有得到这些错误。此外,64位构建在VS2008中也起作用。是否有解决此问题的适当方法,或者我应该等到nvcc支持VS 2010编译器吗?

是的,这在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兼容,必须给出一些东西。回顾一下仍然需要包括数学的必要性。h,它应该在功能上被Cuda所取代。在他们解决问题之前,破解标题将是另一种解决问题的方法:

#if !defined(_MSC_VER) || _MSC_VER < 0x1400
    // hypotf definition here...
#endif
#如果!已定义(_MSC_VER)| | MSC_VER<0x1400
//这里的定义。。。
#恩迪夫

VS10同样,类似的C2373与7.1 SDK中的
MonitorFromWindow
冲突。你能提供更多关于标题破解的详细信息吗?这与Q+A无关,请点击提问按钮。。