为了构建opencv 3.1,我在Visual Studio 2013中使用cmake。我下载了如下所示的依赖项: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的情况下构建的,但我的猜测是,我会损失很多性能。
非常感谢您的帮助!
发布于 2017-01-09 15:29:23
对我来说,我使用了OpenBlas库:
使用CMake Gui配置opencv
选择Advanced
OpenBLAS组,为WITH组配置包含文件夹和库文件,选择并单击Configure按钮,CMake将自动配置OpenBLAS信息。
Generate按钮生成visual studio项目文件并开始构建。发布于 2017-01-12 23:49:44
我会添加一个评论,但我没有足够的代表。在我使用OpenBlas和LAPACK在Visual Studio2013中构建OpenCV 3.2的案例中,除了Viets的回答之外,我还必须在lapacke.h中更改两行代码才能使用基于here的标准库
因此,对于lapacke.h中的OpenBLAS版本0.2.19-Win64-int32,我更改了
@第74行float _Complex到std::complex<float>和
@line 90 double _Complex to std::complex<double>
而无需再次构建OpenBLAS库。
希望能有所帮助。
https://stackoverflow.com/questions/40134261
复制相似问题