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)
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/
にあります)
Ubuntuおよび同様のDebianベースのディストリビューションで Eigen の比較的最近のバージョンが必要な場合(...これは一般的なケースです)、既存のlibeigen3-dev
パッケージで十分です:eg、
Sudo apt install libeigen3-dev
Eigen 3を手動でダウンロードしてインストールすることは、ほとんどのユースケースではおそらくやりすぎです。
dpkg
は、Ubuntuの標準パッケージ管理ツールによってインストールしたソフトウェアのみを認識します。しかし、それはeigenのインストール方法ではありません。ソースコードからインストールしたので、dpkg
はそれを知りません。 dpkg -p libeigen3-dev
の出力は、インストールした固有のものではなく、標準パッケージ管理ツールを使用してインストールされた異なるバージョンの固有のものです。
ソースからインストールした固有のバージョンであるSudo make install
の出力に基づいて、そのファイルは/usr/local/include/eigen3/unsupported/Eigen/src
で利用可能です。
圧縮フォルダーを解凍した後、INSTALLファイルを確認してください。 cmake
を使用してインストールする2番目のオプションを使用しました。その後、ヘッダーファイルを含む「eigen3」フォルダーが/usr/local/include/
フォルダーに作成されました。
プロジェクトには、次のような固有ヘッダーを含めることができます。
#include <eigen3/Eigen/Dense>
これについて言及するのを忘れました。ヘッダーファイルは/usr/local/include/
フォルダーにあるため、「g++ -I
...。」を使用してソースコードファイルをコンパイルする必要はありません。
幸運を!