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 d'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
, la sortie 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
Cela montre que ma configuration n'est pas terminée. Comment puis-je installer la version propre dans mon Ubuntu? Merci à tous
C'est une erreur lorsque je compile avec CmakeList.txt au 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)
checkinstall
programme à la place demake install
), le système dpkg ne saura rien des programmes installés à partir de la source de cette manière.pkg-config --modversion eigen3
dit-on? Quelle version obtenez-vous réellement lorsque vous essayez de créer des trucs?Réponses:
Eigen c ++ est une bibliothèque d'en-tête uniquement: 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 dedans
my_favorite_cpp_folder
, vous faites:et, en supposant que votre compilateur est
gcc
et que les en-têtes propres sont dedans/usr/local/include/eigen3/unsupported/
et que le nom de votre fichier source estmy_favorite_cpp_source_file.cpp
, vous compilez et codez et le liez aux en-têtes propres en faisant:(à partir de la sortie de votre code affichée ci-dessus, les en-têtes propres sont
/usr/local/include/eigen3/
dans votre ordinateur)la source
# Add Eigen dependencies FIND_PACKAGE(Eigen 3.2.90 REQUIRED)
. Je n'ai trouvé aucun chemin d'accès de lib de configuration dans le CmakeList.txtgedit /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h
recherchez les lignes#define EIGEN_WORLD_VERSION
à#define EIGEN_MINOR_VERSION
copier et publier ceux -ci .Pour ceux qui ont simplement besoin d'une version raisonnablement récente d' Eigen 3 sur Ubuntu et de distributions similaires basées sur Debian ( ... ce qui est le cas commun ), l'installation du
libeigen3-dev
package existant suffit: par exemple,Le téléchargement et l'installation manuels d'Eigen 3 sont probablement exagérés pour la plupart des cas d'utilisation.
la source
libeigen3-dev
installe Eigen 3.2, il demande 3.3, donc cette réponse est fausse si vous avez besoin de 3.3.dpkg
ne connaît que les logiciels que vous avez installés par les outils de gestion de paquets standard d'Ubuntu. Mais ce n'est pas ainsi que vous avez installé eigen. Vous avez installé à partir du code source, et en tant que tel, vousdpkg
ne le savez pas. La sortie dedpkg -p libeigen3-dev
ne concerne pas le fichier eigen que vous avez installé, mais une version différente de eigen, installée à l'aide des outils de gestion de package standard.En fonction de votre sortie de
sudo make install
, la version d'eigen que vous avez installée à partir de la source est prête à l'emploi, ses fichiers sont disponibles dans/usr/local/include/eigen3/unsupported/Eigen/src
.la source
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/usr/local/include/
dossier.Dans votre projet, vous pouvez inclure des en-têtes propres comme celui-ci:
J'ai oublié de mentionner ceci. Étant donné que les fichiers d'en-tête sont dans le
/usr/local/include/
dossier, vous n'avez pas besoin de compiler vos fichiers de code source avec eux en utilisant "g++ -I
....".Bonne chance!
la source