【问题标题】:Building opencv 3.1 on windows - where do I specify the LAPACK library location?在 Windows 上构建 opencv 3.1 - 我在哪里指定 LAPACK 库位置?
【发布时间】:2016-10-19 14:27:10
【问题描述】:

为了构建 opencv 3.1,我将 cmake 与 Visual Studio 2013 一起使用。我下载了如下所示的依赖项:http://docs.opencv.org/3.1.0/d3/d52/tutorial_windows_install.html
配置cmake时,首先显示的是:

FP16: Compiler support is available
A library with BLAS API not found. Please specify library location.
LAPACK requires BLAS
A library with LAPACK API not found. Please specify library location.

问题是,我不知道如何指定位置。对于“Eigen”库,我自己设置了库路径(EIGEN_INCLUDE_PATH,这是预定义的),cmake 说:

Other third-party libraries:
    Use IPP:                     NO
    Use IPP Async:               NO
    Use Lapack:                  NO
    Use Eigen:                   YES (ver 3.2.10)
    Use Cuda:                    NO
    Use OpenCL:                  YES
    Use OpenVX:                  NO
    Use custom HAL:              NO

但是 LAPACK 没有预定义的变量。我还尝试将 *.lib 和头文件放在我从 http://icl.cs.utk.edu/lapack-for-windows/ 下载的子目录中,希望 cmake 能以某种方式找到该库。

我必须自己构建opencv 3.1,因为在分布式版本中,额外的模块被禁用。它在没有 LAPACK 的情况下构建,但我的猜测是,我会损失很多性能。

非常感谢您的帮助!

【问题讨论】:

标签: opencv build cmake lapack


【解决方案1】:

对我来说,我使用了OpenBlas 库:

使用 CMake Gui 配置 opencv

  • 选择Advanced
  • OpenBLAS 组中,配置OpenBLAS 的包含文件夹和库文件
  • WITH 组中,选择WITH_LAPACK
  • 现在点击Configure按钮,CMake会自动配置Lapack信息。
  • 一切OK后,可以点击CMake Gui上的Generate按钮生成visual studio项目文件并开始构建。

【讨论】:

    【解决方案2】:

    我会添加评论,但我没有足够的代表。 在我使用OpenBlasLAPACK 在Visual Studio 2013 中构建OpenCV 3.2 的情况下,除了Viets 的回答之外,我还必须更改lapacke.h 中的两行以使用基于here 的标准库

    所以,对于 lapacke.h 中的 OpenBLAS 版本 0.2.19-Win64-int32,我进行了更改

    @line 74 float _Complexstd::complex<float>

    @line 90 double _Complexstd::complex<double>

    无需再次构建 OpenBLAS 库。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 2020-04-14
      • 2012-03-23
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多