Ubuntu 14.04にeigen 3.3をインストールする方法


12

Ubuntu 14.04を使用していますが、Ubuntuにeigen 3.3をインストールしたいと思います。Eigen 3(3.3)の最新バージョンをダウンロードして、次のようにインストールしてみました

mkdir build
cd build
cmake ..
make
sudo make install 

出力はいいね

-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/Splines/Spline.h

ただし、現在の固有バージョンをdpkg -p libeigen3-devで確認すると、出力は

Package: libeigen3-dev
Priority: extra
Section: libdevel
Installed-Size: 3729
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Source: eigen3
Version: 3.2.0-8
Provides: libeigen2-dev
Depends: pkg-config
Suggests: libeigen3-doc, libmrpt-dev
Size: 494158

セットアップが完了していないことがわかりました。Ubuntuに固有バージョンをインストールするにはどうすればよいですか?みんなありがとう

これは、ソースコードでCmakeList.txtを使用してコンパイルするとエラーになります。

-- ===============================================================
-- ============ Configuring CompileSettings  =====================
-- ===============================================================
-- ============= Look for required libraries =====================
-- Looking for Eigen Library with minimum version 3.2.90
-- Looking for Eigen via User Provided (or Cached) location
-- Eigen version 3.2.0 found in /usr/include/eigen3
CMake Warning at cmake/FindEigen.cmake:62 (message):
  Eigen version is less than requred version 3.2.90
Call Stack (most recent call first):
  cmake/FindEigen.cmake:73 (Eigen_Check_Version)
  CMakeLists.txt:23 (FIND_PACKAGE)


CMake Error at /usr/local/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Eigen (missing: EIGEN_VERSION_OK) (Required is at least
  version "3.2.90")
Call Stack (most recent call first):
  /usr/local/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindEigen.cmake:74 (find_package_handle_standard_args)
  CMakeLists.txt:23 (FIND_PACKAGE)

1
(のcheckinstall代わりにプログラムを使用するなど)追加の手順を実行しない限りmake install、dpkgシステムは、この方法でソースからインストールされたプログラムについて何も認識しません。
steeldriver 16

ごめんなさい。どういう意味ですか?どうすれば問題を解決できますか?きっと3.3バージョンをうまくインストールできなかったと思います
John

どうして失敗したと思いますか?何てpkg-config --modversion eigen3言うの?ものをビルドしようとすると、実際にはどのバージョンが入手できますか?
steeldriver 2016

Eigen> = 3.2.90のバージョンを必要とするソースコードを実行し、現在のバージョンがまだ3.2.0であることを示しているため
John

回答:


10

Eigen c ++はヘッダーのみのライブラリです。インストールする必要はありません。ダウンロードして解凍し、コードをリンクします。

たとえば、コードがにmy_favorite_cpp_folderある場合は、次のようにします。

cd my_favorite_cpp_folder

そして、コンパイラがgccあり、固有ヘッダーが/usr/local/include/eigen3/unsupported/あり、ソースファイルの名前がである と仮定してmy_favorite_cpp_source_file.cpp、コンパイルしてコーディングし、固有ヘッダーにリンクします。

g++ -I /usr/local/include/eigen3/ my_favorite_cpp_source_file.cpp -o my_favorite_cpp_source_file

(上記のコード出力から、固有ヘッダーは/usr/local/include/eigen3/コンピューターにあります)


ありがとうございました。ただし、cmakeからオープンソースコードをコンパイルします。この行を使用して、Eigen 3バージョンをチェックし# Add Eigen dependencies FIND_PACKAGE(Eigen 3.2.90 REQUIRED)ます。CmakeList.txtに設定libパスが見つかりませんでした
John

いずれにせよ、問題はeigenのインストールではなく、オープンソースライブラリのインストールにあります。ライブラリをインストールするときに表示されるエラーメッセージを質問に表示する必要があります。これらは参考になります。
user2413

はい。エラーとソースのリンクを更新しました
John

やるgedit /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h ラインの外観を#define EIGEN_WORLD_VERSIONするために#define EIGEN_MINOR_VERSIONそれらをコピーして投稿してください。
user2413 16

1
ありがとう。今はうまくいきました。インストールしたソフトウェアは単なるプロジェクトです。
ジョン

20

Ubuntuおよび同様のDebianベースのディストリビューション(かなり一般的なケースです)でかなり最近のバージョンのEigen 3を単に必要とする場合は、既存のlibeigen3-devパッケージをインストールするだけで十分です。たとえば、

sudo apt install libeigen3-dev

Eigen 3を手動でダウンロードしてインストールすることは、ほとんどのユースケースではおそらくやり過ぎです。


1
シンプルなようですが、私には失敗しました:(
Yair Daon、2017

6
libeigen3-devEigen 3.2をインストールします。彼は3.3を求めているため、3.3が必要な場合、この答えは間違っています。
Gines Hidalgo、2018

Ubuntu 19.04では、パッケージは3.3.7 ...を提供しますが、srcツリーgithub.com/PX4/eigenからインストールすると、20190712現在3.3.90になります
Scott Stensland

2

dpkgUbuntuの標準パッケージ管理ツールによってインストールしたソフトウェアについてのみ知っています。しかし、それはあなたがeigenをインストールした方法ではありません。あなたはソースコードからインストールしたdpkgので、それを知りません。の出力はdpkg -p libeigen3-dev、インストールしたeigenではなく、標準のパッケージ管理ツールを使用してインストールした別のバージョンのeigenに関するものです。

の出力に基づいて、sudo make installソースからインストールしたeigenのバージョンを使用する準備が整いました/usr/local/include/eigen3/unsupported/Eigen/src。そのファイルはで使用できます。


1

圧縮フォルダーを解凍した後、INSTALLファイルを確認します。を使用してインストールする2番目のオプションを使用しましたcmake。その後、ヘッダーファイルを含む「eigen3」フォルダーがフォルダーに作成されました/usr/local/include/

プロジェクトには、次のような固有ヘッダーを含めることができます。

#include <eigen3/Eigen/Dense>

これについて言及するのを忘れました。ヘッダーファイルは/usr/local/include/フォルダー内にあるため、「g++ -I....。」を使用してソースコードファイルをコンパイルする必要はありません。

幸運を!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.