如何使 armadillo-5.200.1(+openblas 或 lapacke)与 Visual Studio 2010 一起工作?

Posted

技术标签:

【中文标题】如何使 armadillo-5.200.1(+openblas 或 lapacke)与 Visual Studio 2010 一起工作?【英文标题】:how to make armadillo-5.200.1 (+openblas or lapacke) work with visual studio 2010? 【发布时间】:2015-06-22 10:08:00 【问题描述】:

一周以来,我一直在尝试使 armadillo-5.200.1 和 openblas(或 lapacke)与 Visual Studio 2010 一起工作,但我仍然有几个来自 blas 和 lapack 库的函数的未解决的外部符号错误。 首先,我尝试从 Windows 的预构建二进制文件中安装 openblas,并设置一个新项目并使用以下示例代码对其进行测试:

#include <cblas.h>
#include <iostream>
#include <vector>

using namespace std;

int main()

    blasint n = 10;
    blasint in_x =1;
    blasint in_y =1;

    std::vector<double> x(n);
    std::vector<double> y(n);

    double alpha = 10;

    std::fill(x.begin(),x.end(),1.0);
    std::fill(y.begin(),y.end(),2.0);

    cblas_daxpy( n, alpha, &x[0], in_x, &y[0], in_y);

    //Print y
    for(int j=0;j<n;j++)
        std::cout << y[j] << "\t";

    std::cout << std::endl;

我收到一个未解析的外部符号 « cblas_daxpy » 错误。我尝试使用 code::blocks 构建相同的项目并得到相同的错误。

我下载并设置了 msys 以便能够编译我在 github (https://github.com/xianyi/Openblas) 上下载的源代码,并尝试让它在 code::blocks 和 Visual Studio 上都可以工作,但我仍然遇到同样的错误。

然后我在自己的笔记本电脑上试了试,因为它有 Linux ubuntu 14.04 LTS。因此,我克隆了 github 并编译了源代码,并尝试在另一个 code::blocks 项目中进行设置,并使用相同的示例代码对其进行了测试,并得到了关于 pthread_create 和 pthread_join 等函数的未定义引用错误。

我还尝试按照以下页面的说明使用 cmake 编译 lapacke 源代码:https://icl.cs.utk.edu/lapack-for-windows/lapack/。我使用示例来测试,项目构建正确,但是当我执行程序时,我有一个弹出窗口消息说找不到 liblapacke.dll。

为了在 Visual Studio 中使用 openblas,我按照关于第三方库的说明进行操作:

add the location of the header files to "C/C++->Additional Include Directories"
add the .lib files to the "Linker->Input->Additional Dependencies"
add the location of the .lib files to "Linker->General->Additional Library Directories"

我需要至少在 Windows 7 和 Visual Studio 2010 上更好地完成这项工作,因为我们在工作中使用它。

【问题讨论】:

【参考方案1】:

你应该将dll文件复制到系统32方向或y的Debug或Release文件夹

【讨论】:

我尝试将它复制到Release和Debug文件夹中并在每种模式下编译了项目但它不起作用,在system32方向复制文件也不起作用。

以上是关于如何使 armadillo-5.200.1(+openblas 或 lapacke)与 Visual Studio 2010 一起工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何使结构可调用?

如何使 RelativeSizeSpan 对齐到顶部

如何基于多个数据集创建 BIRT 报告

如何使 MKMapView 从顶部进入

如何使 CSS 表格适合屏幕宽度?

Hikey OP-TEE Helloworld.TA移植和运行