Eigen提供了向量和矩阵运算的一套功能,提供开源源码,无需编译,其实现文件是.hxx和.cxx,以及一些.h文件。可以通过简单的控制台程序使用它,没有任何问题。但是将其集成到MFC中时,遇到了一个大问题:
我使用的是Eigen2,被一个机器人运动学算法库orocos-kdl调用,编译时报错:max和min函数发生冲突。
定位到Eigen\Core的第300多行:大意是如果已经定义了windows中的max()和min()函数
#error ... 请使用预编译#define NOMAXMIN来取消max()min()宏
解决方法:
1. VS工程属性——C/C++——预编译头,添加NOMAXMIN;
2. 在使用到Eigen2的文件中添加:
#ifndef NOMAXMIN