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

问题在于colPivHouseholderQr()QR 模块中,但您只包括 Dense 模块。

尝试添加以下包括:

#include <Eigen/QR>

见:http : //eigen.tuxfamily.org/api/group_QR_Module.html

于 2012-04-05T13:16:16.060 回答
1

这是使用 Eigen 时 Netbeans 中报告的问题

它无法解析许多对象标识符,包括模板化对象的成员函数,例如您的colPivHouseholderQr()函数。

我得出的最佳解决方案是改用Eclipse

于 2012-08-14T05:51:59.103 回答
-1

抱歉 - 这更像是一条评论,但我无法发表评论 - 但您是否尝试删除缓存?不了解 Windows,但在 Ubuntu 中,它通常位于 ~/.netbeans/7.0(或其他)/var/cache 下 - 只需删除缓存目录下的所有内容。有时这对我有用。

于 2012-04-05T03:24:36.690 回答