Eigenのinstallと使い方(debian)
環境はbookwormです
Eigen Install
eigen-5.0.0でました。(2025.10.9)
表紙のページ のGet it からtar.bz2をDL
cmakeいります(apt install)。
userのままでok。
cmakeを用いたEigenのinstall
eigen-x.y.z.tar.bz2を展開したらeigen-x.y.zができる。
このeigen-x.y.zの下に<build dir>を作成してcmakeで作業。 HOME(~/)の下に任意の名前のdirectory(<install_dir>)を作成して、そこにEigenのpackageをinstallします。
1 $ mkdir <install_dir>(なくても勝手に作成してくれるようです)
2 $ tar jxvf eigen-3.4.0.tar.bz2
3 $ cd eigen-3.4.0
4 $ mkdir <build dir>
5 $ cd <build dir>
6 $ cmake -DCMAKE_INSTALL_PREFIX=$HOME/<install_dir> ..
7 $ make install-DCMAKE_INSTALL_PREFIXを指定しないと、 /usr/local/include/eigen3 に入れようとするので、rootでないとNG
make installすることで、希望の<install_dir>に<include>と<share>ができる。
eigen-x.y.zは削除してok
引用元https://qiita.com/kkoba775/items/405e178f04730094b161
cmakeなしのinstall
directoryごとに個別に展開しても使用できるようです。
tar.bz2を展開して、Eigen/を任意の場所にcp
unsupportedを使いたい時は、unsupported/subdirectoryをcp
1 g++ filename.cpp -I path_to_eigen
2 g++ filename.cpp -isystem path_to_eigen-Iとすると、Eigenに対するwarningが大量に発生するので、 -isystemのほうが、平和です。
引用元:https://qiita.com/MusicScience37/items/13fefa6bed25ab8fb6e9
ただ、これをするとEigenを無数にcpするのと、Include pathをその度に書く 必要があります。趣味の問題で、どぞ。
Eigenの場所をcmakeに教える
~/Eigenにinstallした場合です。
~/.bashrcに以下追加。
1export CMAKE_PREFIX_PATH=$HOME/Eigen:$CMAKE_PREFIX_PATH追加後、一旦terminal閉じる
指定しないと、 Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or "Eigen3_DIR" と言われます。
指定しない時は、3.4.0の下の Eigen3Config.cmake eigen3-config.cmake を探しに行って、そこをincludeしているみたい。 (Makefile)
指定したら、<eigen-3.4.0>(42.1M)は削除できる。
Eigen本体(Eigen/{include,share})だけは9MB
Eigenを利用::cmakeを使ってcompile
引用元:
Ubuntu で Eigen-3.4.0 を CMake から利用する。
https://qiita.com/kkoba775/items/405e178f04730094b161
CMakeLists.txt
cmake_minimum_required(VERSION 3.15)
project(test_eigen CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Eigen3 REQUIRED)
message(STATUS "Found Eigen-" ${EIGEN3_VERSION_STRING})
add_executable(test test.cpp)
target_link_libraries(test Eigen3::Eigen)
test.cpp
1 #include <iostream>
2 #include <Eigen/Dense>
3 namespace ei = Eigen;
4 int main()
5 {
6 ei::Matrix3d A{{1,1,1}, {0,1,1}, {0,0,1}};
7 std::cout << A << std::endl;
8 std::cout << A*A << std::endl;
9
10 return 0;
11 }iostremは/usr/include/c++/{12,10}/iostremにあり
手順の少ないcmake
[[https://qiita.com/shohirose/items/45fb49c6b429e8b204ac][cmakeの使い方に書いてあったとおり]]
1 $ cmake -S . -B build
2 $ cmake --build build
3 $ ./build/testmkdir,cd不要
手順の多いcmake
https://qiita.com/kkoba775/items/405e178f04730094b161ここに書いてあった通り
1 $ mkdir build
2 $ cd build
3 $ cmake ..
4 $ make
5 $ ./testお好きな方をどぞ
Eigenのdocument
eigen-5.0.0/README.mdには https://eigen.tuxfamily.org/ と https://libeigen.gitlab.io/docs/. と書いてますが、gitlabはaccountいるのと、いつの間にかコンテンツなくなってました。
1行目のdownloadのとこをclickするとwebと同じ内容をDLできるようです。