Ich benutze Ubuntu 14.04 und möchte eigen 3.3 in Ubuntu installieren. Ich habe versucht, die neueste Version von Eigen 3 (3.3) herunterzuladen und wie folgt zu installieren
mkdir build
cd build
cmake ..
make
sudo make install
Die Ausgabe gefällt
-- 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
Wenn ich jedoch meine aktuelle Eigenversion mit überprüfe dpkg -p libeigen3-dev
, ist die Ausgabe
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
Es wurde angezeigt, dass mein Setup nicht abgeschlossen ist. Wie kann ich die Eigenversion in meinem Ubuntu installieren? Allen danken
Dies ist ein Fehler, wenn ich mit CmakeList.txt im Quellcode kompiliere
-- ===============================================================
-- ============ 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
Programm anstelle von verwendenmake install
), weiß das dpkg-System nichts über Programme, die auf diese Weise vom Quellcode installiert wurden.pkg-config --modversion eigen3
sagt das aus? Welche Version bekommst du eigentlich, wenn du versuchst Sachen zu bauen?Antworten:
Eigen c ++ ist eine reine Header-Bibliothek: Sie müssen sie nicht installieren, sondern nur herunterladen, entpacken und Ihren Code damit verknüpfen.
Wenn sich Ihr Code beispielsweise in befindet
my_favorite_cpp_folder
, tun Sie Folgendes:Angenommen, Ihr Compiler ist
gcc
und die Eigen-Header sind in/usr/local/include/eigen3/unsupported/
und der Name Ihrer Quelldatei istmy_favorite_cpp_source_file.cpp
, kompilieren und codieren Sie und verknüpfen Sie sie mit den Eigen-Headern, indem Sie Folgendes tun:(Aus Ihrer oben angegebenen Code-Ausgabe befinden sich die Eigen-Header
/usr/local/include/eigen3/
in Ihrem Computer.)quelle
# Add Eigen dependencies FIND_PACKAGE(Eigen 3.2.90 REQUIRED)
. Ich habe keinen einstellenden lib-Pfad in der CmakeList.txt gefundengedit /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h
sucht die Linien#define EIGEN_WORLD_VERSION
zu#define EIGEN_MINOR_VERSION
kopieren und veröffentlichen diese.Für diejenigen, die lediglich eine relativ aktuelle Version von Eigen 3 unter Ubuntu und ähnlichen Debian-basierten Distributionen benötigen ( ... was häufig der Fall ist ), reicht die Installation des vorhandenen
libeigen3-dev
Pakets aus: z.Das manuelle Herunterladen und Installieren von Eigen 3 ist für die meisten Anwendungsfälle wahrscheinlich übertrieben.
quelle
libeigen3-dev
installiert Eigen 3.2, er fragt nach 3.3, daher ist diese Antwort falsch, wenn Sie 3.3 benötigen.dpkg
kennt nur Software, die Sie mit den Standard-Paketverwaltungstools von Ubuntu installiert haben. Aber so haben Sie nicht eigen installiert. Sie haben aus dem Quellcode installiert unddpkg
wissen es daher nicht. Bei der Ausgabe vondpkg -p libeigen3-dev
handelt es sich nicht um das von Ihnen installierte Eigen, sondern um eine andere Version von Eigen, die mit den Standard-Paketverwaltungstools installiert wurde.Basierend auf Ihrer Ausgabe von
sudo make install
ist die Version von eigen, die Sie von der Quelle installiert haben, einsatzbereit. Die Dateien sind in verfügbar/usr/local/include/eigen3/unsupported/Eigen/src
.quelle
Überprüfen Sie nach dem Extrahieren des komprimierten Ordners die INSTALL-Datei. Ich habe die zweite Option der Installation mit verwendet
cmake
. Danach wurde der Ordner "eigen3" mit den Header-Dateien im/usr/local/include/
Ordner erstellt.In Ihr Projekt können Sie Eigenheader wie folgt einfügen:
Ich habe vergessen, das zu erwähnen. Da sich die Header-Dateien im
/usr/local/include/
Ordner befinden, müssen Sie Ihre Quellcodedateien nicht mit "g++ -I
....."Viel Glück!
quelle