我一直在尝试使用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 header 目录。
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

有什么想法吗?

最佳答案

使用vcpkg,您可以轻松地安装openblas并对其进行链接。

关于c++ - 在C++中使用库 “xtensor-blas”时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61702965/

10-11 16:57