2012-04-05 15 views
2

私はC++でEigenライブラリを使用しています。 Eigen documentationによると:Netbeansで固有ライブラリを使用する

固有値を使用するためには、あなただけ(ダウンロードの手順については、Wikiを参照)固有の ソースコードをダウンロードして解凍する必要があります。実際、Eigenサブディレクトリの ヘッダーファイルは、 Eigenを使用してプログラムをコンパイルするために必要な唯一のファイルです。ヘッダーファイルはすべての プラットフォームで同じです。 CMakeを使うか、何かをインストールする必要はありません。

Netbeansでは、「インクルードディレクトリ」にEigenのディレクトリを追加しました。私は(固有のマニュアルに提供される)以下のように簡単なプログラムを使用:

#include <iostream> 
#include <Eigen/Dense> 

using namespace std; 
using namespace Eigen; 

int main() 
{ 
    Matrix3f A; 
    Vector3f b; 
    A << 1,2,3, 4,5,6, 7,8,10; 
    b << 3, 3, 4; 
    cout << "Here is the matrix A:\n" << A << endl; 
    cout << "Here is the vector b:\n" << b << endl; 
    Vector3f x = A.colPivHouseholderQr().solve(b); 
    cout << "The solution is:\n" << x << endl; 
} 

NetBeansはcolPivHouseholderQr()メソッドのために赤い下線を引きます!さらに、オブジェクトAで呼び出せるメソッドの下でcolPivHouseholderQr()メソッドを見ることができません。

驚いたことに、colPivHouseholderQr()の赤いアンダーラインがありますが、意外にもすべて正常に動作し、プログラムは正しくコンパイルされて実行されます。

私の設定に間違いがありますか?

enter image description here

答えて

1

をこれがreported problem in the Netbeans when using Eigenです。

colPivHouseholderQr()関数などのテンプレートオブジェクトのメンバー関数を含む多くのオブジェクト識別子の解決に失敗しました。

私が到着した最高の解決策は、代わりにEclipseを使用することでした。

-1

申し訳ありません - このコメントの詳細ですが、私はコメントを投稿することができません - しかし、あなたはキャッシュを削除してみたのですか? Windowsについては知っていませんが、Ubuntuでは普通は 〜/ .netbeans/7.0(または何でも)/ var/cacheの下にあります。キャッシュディレクトリの下のすべてを削除します。時々それは私のために働く。

+0

私はそれをチェックしましたが、私のNetbeansのキャッシュフォルダは空でした。 – ManiAm

1

colPivHouseholderQr()はQRモジュールにありますが、Denseモジュールのみが含まれているという問題があります。以下を追加

てみてくださいは、次のとおりです。

#include <Eigen/QR> 

参照:http://eigen.tuxfamily.org/api/group_QR_Module.html

+0

答えていただきありがとうございますが、Eigen/Denseファイルをチェックすると、#が含まれていることがわかります。再度組み込む必要はありません。 – ManiAm