Como instalar o eigen 3.3 no Ubuntu 14.04?

4

Estou usando o Ubuntu 14.04 e quero instalar o eigen 3.3 no Ubuntu. Eu tentei baixar a versão mais recente do Eigen 3 (3.3) e instalar o seguinte

mkdir build
cd build
cmake ..
make
sudo make install 

Os gostos de saída

-- 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

No entanto, quando eu verifico a minha versão atual do eigen com dpkg -p libeigen3-dev , a saída é

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

Ele mostrou que minha configuração não foi concluída. Como posso instalar a versão eigen no meu Ubuntu? Obrigado a todos

Isso é um erro quando eu compilo com o CmakeList.txt no código-fonte

-- ===============================================================
-- ============ 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)
    
por user8264 13.12.2016 / 12:59

4 respostas

8

Eigen c ++ é uma biblioteca somente de cabeçalho: você não precisa instalá-lo, basta baixá-lo, descompactá-lo e vinculá-lo ao código.

Por exemplo, se seu código estiver em my_favorite_cpp_folder , faça:

cd my_favorite_cpp_folder

e, supondo que seu compilador é gcc e os cabeçalhos do eigen estão em /usr/local/include/eigen3/unsupported/ e o nome do seu arquivo de origem é my_favorite_cpp_source_file.cpp , você compila e codifica e o vincula aos cabeçalhos do eigen fazendo:

g++ -I /usr/local/include/eigen3/ my_favorite_cpp_source_file.cpp -o my_favorite_cpp_source_file

(da saída do seu código postada acima, os cabeçalhos do eigen estão em /usr/local/include/eigen3/ em seu computador)

    
por user2413 22.12.2016 / 16:25
5

Para aqueles que simplesmente precisam de uma versão razoavelmente recente de Eigen 3 no Ubuntu e em distribuições similares baseadas no Debian ( ... que é o caso comum ), a instalação do pacote libeigen3-dev existente é suficiente: por exemplo,

sudo apt install libeigen3-dev

O download e a instalação manuais do Eigen 3 provavelmente são um exagero para a maioria dos casos de uso.

    
por Cecil Curry 16.07.2017 / 03:32
1

dpkg só conhece o software que você instalou pelas ferramentas de gerenciamento de pacotes padrão do Ubuntu. Mas não é assim que você instalou o eigen. Você instalou a partir do código-fonte e, como tal, dpkg não sabe disso. A saída de dpkg -p libeigen3-dev não é sobre o eigen que você instalou, mas sobre uma versão diferente do eigen, instalada usando as ferramentas padrão de gerenciamento de pacotes.

Com base na sua saída de sudo make install , a versão do eigen que você instalou da fonte está pronta para uso, seus arquivos estão disponíveis em /usr/local/include/eigen3/unsupported/Eigen/src .

    
por janos 22.12.2016 / 19:05
1

Após extrair a pasta compactada, verifique o arquivo INSTALL. Eu usei a segunda opção de instalação usando cmake . Depois que a pasta "eigen3" com os arquivos de cabeçalho foi criada na pasta /usr/local/include/ .

No seu projeto, você pode incluir cabeçalhos de eigen como este:

#include <eigen3/Eigen/Dense>

Eu esqueci de mencionar isso. Como os arquivos de cabeçalho estão na pasta /usr/local/include/ , você não precisa compilar seus arquivos de código-fonte contra eles usando " g++ -I ....."

Boa sorte!

    
por Onesphore Ndayishimiye 07.06.2017 / 18:40