2014-12-04 3 views
1

다음 Mac에서 Qt 환경의 간단한 C++ 코드를 실행하려고합니다. 이 코드로 원하는 것은 LAPACK의 라이브러리를 간단한 수학 연산에 사용하는 것입니다. 난 그냥이 사건을 테스트하는 "내적"기능을 고려하고 "링커 명령"아키텍처 x86_64에 찾을 수 없습니다 기호가 "(호출을보기 위해 사용 -v) 오류 종료 코드 1로 실패은 LAPACK을 C++ 코드에 포함합니다.

얻었다.

그건 그렇고, 난 내가이 같은 오류가 발생할 수 있습니다 해당 파일이나 헤더 파일 이름을 반복하고 있음을 확신합니다.

누구든지 사전에? 감사이를 극복하는 방법을 알고있다.

#include <iostream> 
#include <vector> 
#include <Accelerate/Accelerate.h> 


extern "C" 
{ 
    double ddot_ (const int*, const double*, const int*, const double*, const int*); 
} 



int main() 
{ 
    std::vector<double> values(2, 1.); 


    int N = 2; 
    int one = 1; 

    double norm = ddot_(&N, &values[0], &one, &values[0], &one); 
    std::cout << "Hello world " <<norm << std::endl; 
    return 0; 

} 
+0

LAPACK과 (과) 연결된 적이없는 것 같습니다. –

+0

이 작업은 매우 새로울 것이므로, 어떻게 작동하는지 잘 모르겠습니다. 그래서 지금 C++에 LAPACK을 연결하는 법을 확인합니다. 고마워요. – Noname

+0

그 두 가지를 연결하려면 "g ++ hola.cpp -o hola"를 사용하여 코드를 컴파일해야합니다. 그러나 현재 "QML 디버그 세션 중에 만 평가할 수 있습니다."오류가 발생합니다. – Noname

답변

0

기능,은 Blas 라이브러리의 일부입니다. 그것은 Lapack 도서관의 일부가 아닙니다. 따라서 ddot_()을 사용하는 프로그램은 Blas 라이브러리에 연결되어야합니다.

g++ main.cpp -o main -lblas 

#include <Accelerate/Accelerate.h>이 주석 제공 :에 의해 예를 들어, 당신이 게시 된 C++ 프로그램을 컴파일 할 수 있습니다.

관련 문제