Ubuntu 14.04에서 고유 3.3을 설치하는 방법은 무엇입니까?


12

우분투 14.04를 사용하고 있으며 우분투에 고유 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 <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Source: eigen3
Version: 3.2.0-8
Provides: libeigen2-dev
Depends: pkg-config
Suggests: libeigen3-doc, libmrpt-dev
Size: 494158

설정이 완료되지 않은 것으로 나타났습니다. 우분투에서 고유 버전을 어떻게 설치합니까? 모두 감사합니다

소스 코드 에서 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
추가 단계 (예 : checkinstall대신 프로그램 사용)를 수행하지 않으면 make installdpkg 시스템은 이러한 방식으로 소스에서 설치된 프로그램에 대해 아무것도 알지 못합니다.
스틸 드라이버

죄송합니다. 무슨 뜻이에요? 내 문제를 어떻게 해결할 수 있습니까? 3.3 버전을 성공적으로 설치하지 않았을 것입니다
John

실패한 이유는 무엇입니까? 무엇합니까 pkg-config --modversion eigen3말은? 물건을 만들려고 할 때 실제로 어떤 버전을 얻습니까?
steeldriver

Eigen> = 3.2.90 버전이 필요한 소스 코드를 실행하고 현재 버전이 여전히 3.2.0 인 것으로 나타났습니다
John

답변:


9

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/컴퓨터에 있습니다)


감사합니다. 그러나 cmake에서 오픈 소스 코드를 컴파일합니다. 이 라인을 사용하여 Eigen 3 버전을 확인 # Add Eigen dependencies FIND_PACKAGE(Eigen 3.2.90 REQUIRED)합니다. CmakeList.txt에서 설정 lib 경로를 찾지 못했습니다
John

어쨌든 문제는 고유 설치가 아니라 오픈 소스 라이브러리를 설치하는 것입니다. 질문에 해당 라이브러리를 설치할 때 표시되는 오류 메시지를 넣어야합니다.
user2413

예. 오류와 소스 링크를 업데이트했습니다
John

gedit /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h 선이에 대한 모양 #define EIGEN_WORLD_VERSION하는 #define EIGEN_MINOR_VERSION복사 사람들을 게시합니다.
user2413

1
감사. 그것은 지금 일했다. 설치된 소프트웨어는 프로젝트 일뿐입니다.
John

21

단순히 합리적 최신 버전이 필요한 사람들을 위해 아이겐 3 (우분투와 비슷한 데비안 기반 배포판에 대한 일반적인 경우입니다 ... 기존의 설치) libeigen3-dev패키지 접미사를 : 예를 들면,

sudo apt install libeigen3-dev

대부분의 사용 사례에서 Eigen 3 수동 다운로드 및 설치는 아마도 너무 과잉입니다.


1
간단하지만 실패한 것 같습니다 :(
Yair Daon

6
libeigen3-devEigen 3.2를 설치하면 3.3을 요구하므로 3.3이 필요한 경우이 답변이 잘못되었습니다.
Gines Hidalgo

당신은 20,190,712의로 3.3.90을 얻을 당신이 SRC 나무 github.com/PX4/eigen에서 설치할 때 반면, 우분투 19.04에서 패키지는 ... 당신에게 3.3.7를 제공합니다
스콧 Stensland

2

dpkgUbuntu의 표준 패키지 관리 도구로 설치 한 소프트웨어에 대해서만 알고 있습니다. 그러나 이것이 당신이 고유를 설치 한 방법이 아닙니다. 소스 코드에서 설치 dpkg했으므로 알 수 없습니다. 출력은 dpkg -p libeigen3-dev설치 한 고유가 아니라 표준 패키지 관리 도구를 사용하여 설치된 다른 버전의 고유에 관한 것입니다.

sudo make install소스에서 설치 한 고유 버전의 출력에 따라 파일을에서 사용할 수 있습니다 /usr/local/include/eigen3/unsupported/Eigen/src.


1

압축 폴더를 추출한 후 INSTALL 파일을 확인하십시오. 를 사용하여 설치하는 두 번째 옵션을 사용했습니다 cmake. 그 후 헤더 파일이있는 "eigen3"폴더가 폴더에 작성되었습니다 /usr/local/include/.

프로젝트에서 다음과 같은 고유 헤더를 포함 할 수 있습니다.

#include <eigen3/Eigen/Dense>

나는 이것을 언급하는 것을 잊었다. 헤더 파일은 /usr/local/include/폴더에 있으므로 " g++ -I....."를 사용하여 소스 코드 파일을 컴파일 할 필요가 없습니다 .

행운을 빕니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.