雕刻1.4 CSG - C2375:' cbrt' :重新定义;不同的联系

时间:2014-11-03 16:52:48

标签: c++ visual-studio-2013 redefinition math.h csg

我正在尝试编译Carve 1.4 c ++库。但继续

C2375: 'cbrt' : redefinition; different linkage 

错误。

当我点击一个错误时,它会将我带到math.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,我已经关闭了#build_shared_libs'我已经添加了&#c; cmake_static_linker_flags'与' cmake_exe_linker_flags' ....

相同
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

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题是cbrt is defined here

inline double cbrt(double x)

并在math.h中作为

_CRTIMP double __cdecl cbrt(_In_ double _X);

定义必须匹配,但遗憾的是这是still standing issue

作为一种解决方法,您可以自行修复图书馆,也可以as point 1 of this answer describes