Carve 1.4 CSG-C2375:“cbrt”:重新定义;不同连接 我试图编写CARVE 1.4 C++库。但是继续 C2375: 'cbrt' : redefinition; different linkage

Carve 1.4 CSG-C2375:“cbrt”:重新定义;不同连接 我试图编写CARVE 1.4 C++库。但是继续 C2375: 'cbrt' : redefinition; different linkage,c++,visual-studio-2013,redefinition,math.h,csg,C++,Visual Studio 2013,Redefinition,Math.h,Csg,错误 当我点击一个错误时,它会把我带到数学中的这一行。h: _CRTIMP double __cdecl cbrt(_In_ double _X); 我能找到的唯一其他cbrt函数与名为cbrt.h的库附带的头文件中的这一行有关: inline double cbrt(double x) 我不知道要改变什么才能让它工作。有什么想法吗 我已经使用CMAKE 3.0.2和VS 12 2013生成器生成了carve-1.4 vcxproj文件 我使用的是boost 1.56,CMAKE 3.0.2

错误

当我点击一个错误时,它会把我带到数学中的这一行。h:

_CRTIMP double __cdecl cbrt(_In_ double _X);
我能找到的唯一其他cbrt函数与名为cbrt.h的库附带的头文件中的这一行有关:

inline double cbrt(double x)
我不知道要改变什么才能让它工作。有什么想法吗

我已经使用CMAKE 3.0.2和VS 12 2013生成器生成了carve-1.4 vcxproj文件

我使用的是boost 1.56,CMAKE 3.0.2,VS 12 2013,windows 7

对于CMAKE,对于Carve 1.4,我已经关闭了“构建共享库”,并添加了“CMAKE_静态链接器_标志”与“CMAKE_执行链接器_标志”相同

CMAKE_STATIC_LINKER_FLAGS                /machine:X86 

CMAKE_STATIC_LINKER_FLAGS_DEBUG          /debug /INCREMENTAL

CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL     /INCREMENTAL:NO

CMAKE_STATIC_LINKER_FLAGS_RELEASE        /INCREMENTAL:NO

CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO /debug /INCREMENTAL
提前感谢您的帮助。

问题在于cbrt作为

在数学方面也是如此

_CRTIMP double __cdecl cbrt(_In_ double _X);
定义必须匹配,但不幸的是这是一个错误

作为一种解决方法,您可以自己修复库,也可以执行以下操作

_CRTIMP double __cdecl cbrt(_In_ double _X);