1.下載
切換到root
用戶。
$su root # 切換root用戶,要輸入密碼
#cd # 切換到root的家目錄
#wget http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz # 下載Eigen
2.解壓安裝
#tar -zxvf 3.3.7.tar.gz # 解壓
然后會有一個類似於eigen-eigen-xxxxxxxxxxxxxxx
的文件夾。
#cd eigen-eigen-xxxxxxxxxxxxxxx # 進入eigen解壓的目錄
#mkdir build # 新建一個build文件夾
#cd build # 進入build文件夾
#cmake .. # 用cmake生成Makefile
#make install # 安裝
默認安裝目錄為/usr/local/include/eigen3
。Eigen庫只有頭文件組成,沒有.so
或.a
那樣的共享庫或靜態庫,很神奇的一個庫。因此在使用時,引入頭文件即可,不需要鏈接庫文件。
3.示例
參考官方的例子:http://eigen.tuxfamily.org/dox/GettingStarted.html。
$cd # 回到家目錄
$mkdir EigenExample # 建一個文件夾
$cd EigenExample # 進入這個文件夾
$vi TestEigen.cpp # 編輯C++代碼
然后輸入以下代碼:
#include <iostream>
#include <Eigen/Dense> // 稠密矩陣的代數運算,如求逆,特征值等
using namespace std;
int main(int argc, char** argv) {
Eigen::MatrixXd m(2,2); // 聲明一個2x2的矩陣
m(0, 0) = 3; // 開始矩陣賦值
m(1, 0) = 2.5;
m(0, 1) = -1;
m(1, 1) = m(1, 0) + m(0, 1);
cout << m << endl; // 打印矩陣
return 0;
}
接下來寫一個CMakeLists.txt
。
$vi CMakeLists.txt
內容如下:
# 聲明需要的cmake最小版本為2.8
cmake_minimum_required(VERSION 2.8)
# 聲明cmake工程
project(Eigen)
# 設置編譯模式為發布模式
set(CMAKE_BUILD_TYPE "Release")
# 設置編譯參數
set(CMAKE_CXX_FLAGS "-O3")
# 添加Eigen頭文件
include_directories("/usr/local/include/eigen3")
# 添加一個可執行程序
add_executable(TestEigen TestEigen.cpp)
然后編譯:
$mkdir build # 新建build文件夾
$cd build # 進入build文件夾
$cmake .. # 用cmake生成Makefile
$make # 編譯,會生成一個TestEigen的可執行文件
$./TestEigen # 執行
輸出的結果為:
3 -1
2.5 1.5
源碼可於github下載:https://github.com/gkimeeq/SLAMLearning。