我正在使用 Ubuntu 14.04,我想在 Ubuntu 中安装 eigen 3.3。我尝试下载最新版本的 Eigen 3 (3.3) 并按如下方式安装
mkdir build
cd build
cmake ..
make
sudo make install
输出喜欢
-- 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
然而,当我用 检查我当前的特征版本时dpkg -p libeigen3-dev
,输出是
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
显示我的安装未完成。如何在我的 Ubuntu 中安装 eigen 版本?谢谢大家
当我使用 CmakeList.txt 进行编译时出现此错误源代码
-- ===============================================================
-- ============ 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)
答案1
对于那些只需要较新版本的特征 3在 Ubuntu 和类似的基于 Debian 的发行版上(...这是常见的情况),安装现有的libeigen3-dev
包就足够了:例如,
sudo apt install libeigen3-dev
对于大多数用例来说,手动下载和安装 Eigen 3 可能有些过度。
答案2
Eigen c++ 是一个仅有头文件的库:您不需要安装它,只需下载、解压并将您的代码链接到它即可。
例如,如果您的代码在my_favorite_cpp_folder
,您可以执行以下操作:
cd my_favorite_cpp_folder
并且,假设您的编译器是gcc
,并且特征头在
/usr/local/include/eigen3/unsupported/
,并且您的源文件的名称是my_favorite_cpp_source_file.cpp
,您编译和编码并通过执行以下操作将其链接到特征头:
g++ -I /usr/local/include/eigen3/ my_favorite_cpp_source_file.cpp -o my_favorite_cpp_source_file
(从上面发布的代码输出来看,特征头位于/usr/local/include/eigen3/
您的计算机中)
答案3
解压压缩文件夹后,检查 INSTALL 文件。我使用了第二个选项,即使用 进行安装cmake
。之后,在文件夹中创建了包含头文件的“eigen3”文件夹/usr/local/include/
。
在您的项目中,您可以包含如下特征标头:
#include <eigen3/Eigen/Dense>
我忘了提这一点了。由于头文件位于/usr/local/include/
文件夹中,因此您无需使用“ g++ -I
....”来编译源代码文件。
祝你好运!
答案4
dpkg
只知道您通过 Ubuntu 标准包管理工具安装的软件。但这不是您安装 eigen 的方式。您是从源代码安装的,因此dpkg
不知道它。的输出dpkg -p libeigen3-dev
不是关于您安装的 eigen,而是关于使用标准包管理工具安装的不同版本的 eigen。
根据您的输出sudo make install
,您从源代码安装的 eigen 版本已可供使用,其文件可在 中使用/usr/local/include/eigen3/unsupported/Eigen/src
。