1、首先,Eigen官网(http://eigen.tuxfamily.org/index.php?title=Main_Page)下载Eigen:
2、然后,解压文件,解压完成后重命名为eigen3,接着把这个eigen3文件夹整个复制到你想放置的位置,也可不移动。
3、接着,打开VS2012,新建一个项目,然后选择”项目”—>”属性” 打开工程的属性页。
4、选择”C/C++” —>”常规”,在”附加包含目录”里加入eigen3文件夹的路径。
对于一些第三方的SDK,一般会包含头文件(*.h),静态库文件(*.lib)和动态库文件(*.dll)。为了提高程序的可移植性,建议将第三方库放在解决方案(*.sln)或者(*.vcproj)文件所在的文件夹下,而不要放在其他位置。
1) 绝对路径
我这里使用的绝对路径为"F:\opencv_code_vs2012\testEigenVS2012\testEigenVS2012\eigen3",如果程序在别的电脑上面可能就又要配置下才能运行了。
2) 相对路径
这里相对路径是对工程文件(*.vcxproj)而言的。我的工程名为:testEigenVS2012,路径为:F:\opencv_code_vs2012\testEigenVS2012\testEigenVS2012\testEigenVS2012.vcxproj,第三方库文件夹,名为:eigen3,则第三方库包含路径为:.\eigen3。其中".\"表示和工程文件(*.vcxproj)在同一级目录,若是两个点"..\"则表示在工程(*.vcxproj)的上一级目录。如果要返回多级目录,重复使用双点"..\",表示为..\..\
5、最后,写个小程序测试下eigen配置是否成功。
#include <iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
int main(int argc, char *argv[])
{
Matrix2d a;
a << 1,2,
3,4;
MatrixXd b(2,2);
b << 2,2,
2,2;
cout << "a + b = \n" << a + b << endl;
cout << "a - b = \n" << a - b << endl;
cout << "Doing a += b;" << endl;
a += b;
cout << "Now a = \n" << a << endl;
cout << "a^T = " << a.transpose() << endl;
cout << "a*b = \n " << a*b << endl;
Vector3d v(1, 2, 3);
Vector3d w(1, 0, 0);
cout << "-v + w - v =\n" << -v + w - v << endl;
cout << v << endl;
cout << v.transpose() << endl;
system("PAUSE");
return 0;
}
6、结果