2017-01-20 1 views
0

Qt 프로젝트에서 pcl 라이브러리를 사용하려고합니다.'Index'네임 스페이스 'Eigen'의 형식이 아닙니다.

#include "pcl/common/common_headers.h" 
#include "pcl/io/io.h" 

오류가 고유의 헤더 파일에 발생 (LDLT.h, LLT.h) : 나는 지수의 정의를 참조 않았다

'Index' in namespace 'Eigen' does not name a type 
'Solve' in namespace 'Eigen' does not name a type 

나는 나에게 오류를주고 다음 헤더 파일을 포함 LDLT.h 및 LLT.h 파일. 왜 내가이 오류를 내는지 모르겠다.

+0

사용하는 아이겐 어떤 버전 : 2. 관련하여

, 당신은 다음과 같은 방법을 해결 호출해야? ('std :: cout << EIGEN_WORLD_VERSION << '.'<< EIGEN_MAJOR_VERSION << '. << EIGEN_MINOR_VERSION <<'\ n ';') – chtz

+0

@chtz 버전은 3.3입니다. –

+0

Eigen 3.3.0 (이상) 확실히 이런 종류가 있습니다. Eigen 설치가 손상되었거나 다른 것이 손상되었습니다. MVCE를 제공 할 수 있습니까? – chtz

답변

0

어쩌면 당신은 올바른 방법으로 그들을 부르지 않을 것입니다 ... 나는 어떤 코드도없이 말할 수는 없습니다. 나는 추측하려고 노력할 것입니다!
은 명확합니다 :

  1. Index 클래스의 생체 부분 간 이식 또는 LLT 내부에 선언 된 타입 정의입니다 : 당신은 당신이 사용하고자하는 하나를 결정해야합니다! Index은 클래스 EigenSolver 및 다른 클래스에도 선언되어 있습니다. 다시 한 번 사용하고 싶은 것을 결정하십시오. Something = LDLT 또는 Something = LLT 또는

    Eigen::LDLT<Eigen::MatrixXd>::Index your_stuff_with_index = whatever; 
    

    으로 LDLT<Eigen::MatrixXd> 교체

    using namespace Something; 
    

    :

  2. solve
  3. 은 주어진 클래스의 방법 당신은 두 가지 방법을 사용할 수

(생체 부분 간 이식, LLT)입니다 네가 가진 것은 무엇이든간에.

LDLT<MatrixXd> chol = whatever; 
....... 
....... 
result = chol.solve(stuff); 
관련 문제