2012-04-05 2 views
2

C++에서 고유 라이브러리를 사용하고 있습니다. Eigen documentation에 따르면Netbeans의 고유 라이브러리 사용

아이겐을 사용하려면, 당신은 다운로드하여 아이겐의 소스 코드 (다운로드 지침은 위키 참조) 추출해야합니다. 실제로 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; 
} 

넷빈즈 colPivHouseholderQr() 메소드 빨간색 밑줄 무! 또한 colPivHouseholderQr() 메서드는 객체 A에서 호출 할 수있는 메서드 아래에 표시되지 않습니다.

놀랍게도 colPivHouseholderQr()에 빨간색 밑줄이 있어도 놀랍게도 모든 것이 잘 작동하고 프로그램이 올바르게 컴파일되고 실행됩니다 !!

내 구성이 잘못되었을 수 있습니까 ??

enter image description here

답변

1

이것은 reported problem in the Netbeans when using Eigen이다.

colPivHouseholderQr() 함수와 같은 템플릿 개체의 멤버 함수를 비롯하여 많은 개체 식별자를 확인할 수 없습니다.

도착한 가장 좋은 해결책은 대신 Eclipse을 사용하는 것이 었습니다.

-1

죄송합니다 -이 주석의 더하지만이 의견을 게시 할 수 없습니다입니다 -하지만 당신은 캐시를 삭제하려고 했습니까? 윈도우에 대해서는 잘 모르지만 우분투에서는 대개 ~/.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