2

私はC++でEigenライブラリを使用しています。Eigenのドキュメントによると:

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

そこで、Netbeansで、Eigenのディレクトリを「インクルードディレクトリ」に追加しました。次に、以下のような簡単なプログラムを使用しました(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()に赤い下線が付いていますが、すべてが正常に動作し、プログラムが正しくコンパイルおよび実行されます。

私の構成の何が問題になっている可能性がありますか?

ここに画像の説明を入力してください

4

3 に答える 3

1

これは、Eigenを使用する場合のNetbeansで報告された問題です。

関数などのテンプレート化されたオブジェクトのメンバー関数を含む、多くのオブジェクト識別子を解決できませんcolPivHouseholderQr()

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

于 2012-08-14T05:51:59.103 に答える
1

問題はcolPivHouseholderQr()、QRモジュールにありますが、高密度モジュールのみが含まれていることです。

次のインクルードを追加してみてください。

#include <Eigen/QR>

参照:http ://eigen.tuxfamily.org/api/group_ QR _Module.html

于 2012-04-05T13:16:16.060 に答える
-1

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

于 2012-04-05T03:24:36.690 に答える