OpenMesh无法使用最小/最大宏活动进行编译

时间:2015-07-22 14:31:44

标签: c++ c macros

我该如何处理此错误?我将NOMINMAX添加到预处理器定义中,但它不起作用。那么解决方案是什么?

错误如下。

ClCompile:
1>  tricall.c
1>  Detected min macro! OpenMesh does not compile with min/max macros active! Please add a define NOMINMAX to your compiler flags or add #undef min before including OpenMesh headers !
1>d:\programfiles\c_library\openmesh3.2\include\openmesh\core\system\config.h(72): fatal error C1189: #error :  min macro active

1 个答案:

答案 0 :(得分:0)

你应该添加

#ifdef min
#undef min
#endif
在包含OpenMesh标头之前,

max类似。

某些未观察NOMINMAX的标头正在定义它们。

如果这会破坏依赖于这些宏的其他代码,那么使用更复杂的

#ifdef min
#define foo min
#undef min
#endif
/*OpenMesh includes here*/
#ifdef foo
#define min foo
#undef foo
#endif

其中foo是您选择的符号。