web-dev-qa-db-fra.com

Comment installer eigen 3.3 dans Ubuntu 14.04?

J'utilise Ubuntu 14.04 et je souhaite installer eigen 3.3 dans Ubuntu. J'ai essayé de télécharger la dernière version de Eigen 3 (3.3) et de l'installer comme suit

mkdir build
cd build
cmake ..
make
Sudo make install 

La sortie aime

-- 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

Cependant, lorsque je vérifie ma version propre actuelle avec dpkg -p libeigen3-dev, le résultat est

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

Il a montré que ma configuration ne se termine pas. Comment puis-je installer la version propre de mon Ubuntu? Merci à tous

C'est une erreur lorsque je compile avec CmakeList.txt à code source

-- ===============================================================
-- ============ 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 ++ est une bibliothèque contenant uniquement des en-têtes: vous n'avez pas besoin de l'installer, il vous suffit de la télécharger, de la décompresser et de lier votre code à celle-ci.

Par exemple, si votre code est dans my_favorite_cpp_folder, vous procédez comme suit:

cd my_favorite_cpp_folder

et, en supposant que votre compilateur est gcc et que les en-têtes propres sont dans /usr/local/include/eigen3/unsupported/ et que le nom de votre fichier source est my_favorite_cpp_source_file.cpp, vous compilez, codez et liez-le aux en-têtes propres en procédant comme suit:

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

(à partir de la sortie de code affichée ci-dessus, les en-têtes propres sont en /usr/local/include/eigen3/ dans votre ordinateur)

9
user2413

Pour ceux qui exigent simplement une version raisonnablement récente de Eigen sur Ubuntu et des distributions similaires basées sur Debian ( ... qui est le cas habituel ), l'installation du package libeigen3-dev existant suffit: , par exemple,

Sudo apt install libeigen3-dev

Le téléchargement et l'installation manuels d'Eigen 3 sont probablement excessifs dans la plupart des cas d'utilisation.

14
Cecil Curry

dpkg ne connaît que les logiciels que vous avez installés à l'aide des outils de gestion de paquets standard d'Ubuntu. Mais ce n'est pas comme ça que vous avez installé eigen. Vous avez installé à partir du code source et, en tant que tel, dpkg ne le sait pas. Le résultat de dpkg -p libeigen3-dev ne concerne pas le propre que vous avez installé, mais une version différente de ce dernier, installée à l’aide des outils de gestion de packages standard.

Sur la base de votre sortie de Sudo make install, la version de eigen que vous avez installée à partir du code source est prête à être utilisée, ses fichiers sont disponibles dans /usr/local/include/eigen3/unsupported/Eigen/src.

1
janos

Après avoir extrait le dossier compressé, vérifiez le fichier INSTALL. J'ai utilisé la deuxième option d'installation à l'aide de cmake. Après quoi le dossier "eigen3" avec les fichiers d’en-tête a été créé dans le dossier /usr/local/include/.

Dans votre projet, vous pouvez inclure des en-têtes propres comme ceci:

#include <eigen3/Eigen/Dense>

J'ai oublié de mentionner ceci. Étant donné que les fichiers d'en-tête se trouvent dans le dossier /usr/local/include/, vous n'avez pas besoin de compiler vos fichiers de code source à l'aide de "g++ -I ....".

Bonne chance!