Ошибка при использовании библиотеки xtensor-blas в C++

Я некоторое время пытался использовать библиотеку xtensor-blas, но безуспешно. Я использую Windows, G++ 8.1.0 и MinGW-W64. Вот моя попытка на простом примере:

#include <iostream>
#include "xtensor/xarray.hpp"
#include "xtensor-blas/xlinalg.hpp"

int main()
{
    xt::xarray<double> a = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    auto d = xt::linalg::det(a);
}

Вот ошибка, которую я получаю

C:\Users\giafc\AppData\Local\Temp\cc498kqV.o:try_xtensor.cpp:(.text$_ZN9cxxlapack5getrfIiEET_S1_S1_PdS1_PS1_[_ZN9cxxlapack5getrfIiEET_S1_S1_PdS1_PS1_]+0x3f): undefined reference to `dgetrf_'
collect2.exe: error: ld returned 1 exit status

Вот командная строка, которую я запускаю для компиляции файла, где я включаю каталог заголовков Lapack, я связываю библиотеку Lapack (где находится libcblas.a), я включаю каталог заголовков xtensor, каталог заголовков xtl и xtensor-blas каталог заголовка.

g++ try2_xtensor.cpp -std=c++14 -I C:/Users/giafc/Anaconda3/pkgs/lapack-3.6.1-h8933c1f_2/Library/include -L C:/Users/giafc/Anaconda3/pkgs/lapack-3.6.1-h8933c1f_2/Library/lib -lcblas -I C:/Users/giafc/Anaconda3/pkgs/xtensor-0.21.5-h7ef1ec2_0/Library/include -I C:/Users/giafc/Anaconda3/pkgs/xtl-0.6.13-h1ad3211_0/Library/include -I C:/Users/giafc/Anaconda3/pkgs/xtensor-blas-0.17.2-hd41736c_0/Library/include

Любые идеи, пожалуйста?


person user3199900    schedule 09.05.2020    source источник
comment
Кажется, что blas не связан. Мой опыт работы с Windows практически отсутствует. Но, возможно, эти ссылки помогут: openblas-to-mingw , github.com /xtensor-stack/xtensor-blas/blob/master/.appveyor.yml , github.com/xtensor-stack/xtensor-blas/blob/master/test/ ?   -  person Tom de Geus    schedule 14.05.2020


Ответы (1)


С помощью vcpkg вы можете легко установить openblas и связать его.

person mmarah    schedule 14.05.2020