2017-01-20 3 views
0

Qtプロジェクトでpclライブラリを使用しようとしています。私は私にエラーを与えるヘッダファイルは、以下が含ま:エラーが固有のヘッダファイル(LDLT.h、LLT.h)で行わ名前空間 'Eigen'の 'インデックス'はタイプに名前を付けません

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

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

私はにインデックスの定義を参照しましたLDLT.hおよびLLT.hファイル。なぜ私にこれらのエラーを与えるのか分かりません。

+0

あなたは固有のどのバージョンを使用していますか? ( '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は、クラスLDLTまたはLLT内で宣言typedefである:あなたが使用したいかを決める必要があります! 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. は、与えられたクラスのメソッド次の2つのアプローチを使用することができ

(LDLT、​​LLT)でありますあなたが持っているものは何でも。 2.に関しては

、次のような解決メソッドを呼び出す必要があります:

LDLT<MatrixXd> chol = whatever; 
....... 
....... 
result = chol.solve(stuff); 
関連する問題