Saya menggunakan Ubuntu 14.04 dan saya ingin menginstal eigen 3.3 di Ubuntu. Saya mencoba mengunduh versi terbaru Eigen 3 (3.3) dan menginstalnya sebagai berikut
mkdir build
cd build
cmake ..
make
sudo make install
Output suka
-- 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
Namun, ketika saya memeriksa versi eigen saya saat ini dpkg -p libeigen3-dev
, hasilnya adalah
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
Ini menunjukkan pengaturan saya tidak selesai. Bagaimana saya bisa menginstal versi eigen di Ubuntu saya? Terimakasih semua
Ini kesalahan ketika saya kompilasi dengan CmakeList.txt pada kode sumber
-- ===============================================================
-- ============ 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
program di tempatmake install
), sistem dpkg tidak akan tahu apa-apa tentang program yang diinstal dari sumber dengan cara ini.pkg-config --modversion eigen3
dikatakan? Versi apa yang sebenarnya Anda dapatkan ketika Anda mencoba membangun barang?Jawaban:
Eigen c ++ adalah pustaka header saja: Anda tidak harus menginstalnya, cukup unduh, unzip, dan tautkan kode Anda.
Misalnya, jika kode Anda ada
my_favorite_cpp_folder
, Anda melakukannya:dan, dengan anggapan kompiler Anda berada
gcc
dan header eigen ada di dalam/usr/local/include/eigen3/unsupported/
dan nama file sumbermy_favorite_cpp_source_file.cpp
Anda, Anda mengkompilasi dan kode dan menautkannya ke header eigen dengan melakukan:(dari output kode Anda yang diposting di atas, header eigen ada di
/usr/local/include/eigen3/
komputer Anda)sumber
# Add Eigen dependencies FIND_PACKAGE(Eigen 3.2.90 REQUIRED)
. Saya tidak menemukan pengaturan lib path di CmakeList.txtgedit /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h
mencari baris#define EIGEN_WORLD_VERSION
untuk#define EIGEN_MINOR_VERSION
menyalin dan mempostingnya.Bagi mereka yang hanya membutuhkan versi terbaru dari Eigen 3 di Ubuntu dan distro berbasis Debian serupa ( ... yang merupakan kasus umum ), menginstal
libeigen3-dev
paket yang ada sudah cukup: misalnya,Mengunduh dan menginstal Eigen 3 secara manual mungkin berlebihan untuk sebagian besar kasus penggunaan.
sumber
libeigen3-dev
menginstal Eigen 3.2, ia meminta 3.3, jadi jawaban ini salah jika Anda membutuhkan 3.3.dpkg
hanya tahu tentang perangkat lunak yang telah Anda instal oleh alat manajemen paket standar Ubuntu. Tapi bukan itu cara Anda menginstal eigen. Anda telah menginstal dari kode sumber, dan karenadpkg
itu tidak mengetahuinya. Output daridpkg -p libeigen3-dev
bukan tentang eigen yang Anda instal, tetapi tentang versi eigen yang berbeda, diinstal menggunakan alat manajemen paket standar.Berdasarkan output Anda dari
sudo make install
, versi eigen yang Anda instal dari sumber siap digunakan, file-nya tersedia di/usr/local/include/eigen3/unsupported/Eigen/src
.sumber
Setelah mengekstrak folder terkompresi, periksa file INSTALL. Saya menggunakan opsi kedua menginstal menggunakan
cmake
. Setelah itu folder "eigen3" dengan file header dibuat di/usr/local/include/
folder.Dalam proyek Anda, Anda dapat memasukkan header eigen seperti ini:
Saya lupa menyebutkan ini. Karena file header ada di
/usr/local/include/
folder, Anda tidak perlu mengkompilasi file kode sumber Anda dengan menggunakan "g++ -I
...."Semoga berhasil!
sumber