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



我正在尝试编译Carve 1.4 c++库。但不断得到

C2375: 'cbrt' : redefinition; different linkage 

错误。

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

_CRTIMP double __cdecl cbrt(_In_ double _X);

我能找到的唯一一个cbrt函数与名为cbrt.h:的库附带的头文件中的这一行有关

inline double cbrt(double x)

我不知道该改变什么才能让它发挥作用。有什么想法吗?

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

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

使用CMAKE,对于Carve 1.4,我关闭了"build_shared_lib",并添加了"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

提前感谢您的帮助。

问题是cbrt在这里被定义为

inline double cbrt(double x)

在数学上称为

_CRTIMP double __cdecl cbrt(_In_ double _X);

定义必须匹配,但不幸的是,这仍然是一个悬而未决的问题。

作为一种变通方法,您可以自己修复库,也可以按照本答案的第1点所述进行。

相关内容

  • 没有找到相关文章

最新更新