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)
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)
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.
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
.
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!