компиляция программы c++ с библиотекой LAPACK

Я новичок в программировании на С++, у меня есть код на С++, взятый из Интернета. с помощью библиотеки LAPACK я установил LAPACK и BLAS (надеюсь, установил успешно)

:/usr/local/lib$ ls
libblas.a  liblapack.a  python3.6

программа такая,

#include <iostream>
#include "lapacke.h"

using namespace std;

int main()
{
    char    TRANS = 'N';
    int     INFO=3;
    int     LDA = 3;
    int     LDB = 3;
    int     N = 3;
    int     NRHS = 1;
    int     IPIV[3] ;

    double  A[9] = { 1, 2, 3, 2, 3, 4, 3, 4, 1 };

    double B[3] = {-4,-1,-2 };

    cout << "compute the LU factorization..." << endl << endl;
    LAPACK_dgetrf(&N,&N,A,&LDA,IPIV,&INFO);

    if(INFO)
    {
        cout << "solving the system..."<< endl << endl;
    }else{
        printf("solving the system...");
        dgetrs_(&TRANS,&N,&NRHS,A,&LDA,IPIV,B,&LDB,&INFO);
        if(INFO)
        {
            cout << "an error occured : "<< INFO << endl << endl;
        }else{
            cout << "print the result : {";
            int i;
            for (i=0;i<N;i++)
            {
                cout << B[i] << " ";
            }
            cout << "}" << endl << endl;
        }
    }

     cout << "program terminated." << endl << endl;
    return 0;
}

и я пытаюсь скомпилировать его с помощью этой команды,

 g++ main.cpp -o run -llapack

но это результат, который я получаю,

/usr/bin/ld: cannot find -llapack
collect2: error: ld returned 1 exit status

Я использую Ubuntu 18.04 Пожалуйста, помогите мне с этим. благодарю вас


person student    schedule 11.12.2018    source источник


Ответы (1)


Похоже, ваша система не настроена на поиск библиотек в /usr/local/lib.

Вы можете добавить -L/usr/local/lib к вашей команде компиляции.

Если вам нужно установить библиотеку, я предлагаю вам использовать эту команду:

sudo apt-get install liblapack-dev

person D.Go    schedule 11.12.2018
comment
это так? g++ main.cpp -o aa -llapack -L /usr/local/lib/, но я получаю следующий вывод: /usr/bin/ld: не удается найти -llapack collect2: ошибка: ld вернул 1 статус выхода - person student; 11.12.2018
comment
Ваша команда должна выглядеть примерно так: g++ main.cpp -o run -L/usr/local/lib -llapack - person D.Go; 11.12.2018
comment
Если это не сработает, вероятно, у вас неправильная архитектура для этой библиотеки. - person D.Go; 11.12.2018
comment
все та же ошибка, как найти нужную библиотеку? - person student; 11.12.2018
comment
Попробуйте команду, которую я добавил в ответ. Это самый простой способ установить библиотеку. Я не уверен, как вы добавили его раньше. - person D.Go; 11.12.2018
comment
Большое спасибо, после установки ссылки, которую вы предлагаете, это сработало! - person student; 11.12.2018
comment
Превосходно. Веселиться :) - person D.Go; 11.12.2018