web-dev-qa-db-ja.com

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

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 <[email protected]>
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)
8
John

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/にあります)

9
user2413

Ubuntuおよび同様のDebianベースのディストリビューションで Eigen の比較的最近のバージョンが必要な場合(...これは一般的なケースです)、既存のlibeigen3-devパッケージで十分です:eg、

Sudo apt install libeigen3-dev

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

15
Cecil Curry

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

ソースからインストールした固有のバージョンであるSudo make installの出力に基づいて、そのファイルは/usr/local/include/eigen3/unsupported/Eigen/srcで利用可能です。

1
janos

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

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

#include <eigen3/Eigen/Dense>

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

幸運を!