Skip to content

FindOpenBLAS doesn't find OpenBLAS due to incorrect filename #24268

@FlyinTeller

Description

@FlyinTeller

System Information

OpenCV Version 4.7.0 (commit 725e440), but same behaviour in latest version
Windows 10
cmake 3.26.4

Detailed description

https://github.com/opencv/opencv/blob/4790a3732e725b102f6c27858e7b43d78aee2c3e/cmake/OpenCVFindOpenBLAS.cmake#L76C1-L76C95

contains the line

FIND_LIBRARY(OpenBLAS_LIB NAMES openblas PATHS ${Open_BLAS_LIB_SEARCH_PATHS}  NO_DEFAULT_PATH)

which looks for a library called openblas.lib on windows. The windows release of openBLAS (https://github.com/xianyi/OpenBLAS/releases/download/v0.3.24/OpenBLAS-0.3.24-x64.zip) however contains libopenblas which is not recognized by cmake.

Changing the line to

FIND_LIBRARY(OpenBLAS_LIB NAMES openblas libopenblas PATHS ${Open_BLAS_LIB_SEARCH_PATHS}  NO_DEFAULT_PATH)

makes sure that the windows release of openblas can also be found

Steps to reproduce

set OpenBLAS_HOME=%CURRENT_DIR%\dependencies\OpenBLAS-0.3.24-x64
git clone https://github.com/opencv/opencv
git clone https://github.com/opencv/opencv_contrib
cd opencv
mkdir build
cd build

cd opencv
mkdir build_binary_openblas
cd build_binary_openblas

#Build OpenCV in Debug config
rm -r * 
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
cmake -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=DEBUG ^
    -DPYTHON3_EXECUTABLE=%py_three% ^
    -DPYTHON2_EXECUTABLE=%py_two% ^
    -DWITH_OPENCL=True ^
    -DWITH_QT=False ^
    -DWITH_FFMPEG=False ^
    -DWITH_GSTREAMER=False ^
    -DWITH_DSHOW=False ^
    -DBUILD_opencv_dnn=OFF ^
    -DBUILD_opencv_video=ON ^
    -DBUILD_opencv_videoio=ON ^
    -DBUILD_opencv_python2=OFF ^
    -DBUILD_opencv_python3=OFF ^
    -DWITH_PROTOBUF=OFF ^
    -DCMAKE_INSTALL_PREFIX=..\..\build_binary_openblas ^
    -DOPENCV_EXTRA_MODULES_PATH=..\..\opencv_contrib\modules ^
    -DBUILD_opencv_=OFF ^
    -DBUILD_opencv_alphamat=OFF ^
    -DBUILD_opencv_aruco=OFF ^
    -DBUILD_opencv_bgsegm=OFF ^
    -DBUILD_opencv_bioinspired=OFF ^
    -DBUILD_opencv_ccalib=OFF ^
    -DBUILD_opencv_cnn_3dobj=OFF ^
    -DBUILD_opencv_cvv=ON ^
    -DBUILD_opencv_datasets=OFF ^
    -DBUILD_opencv_dnn_objdetect=OFF ^
    -DBUILD_opencv_dnn_superres=OFF ^
    -DBUILD_opencv_dnns_easily_fooled=OFF ^
    -DBUILD_opencv_dpm=OFF ^
    -DBUILD_opencv_face=OFF ^
    -DBUILD_opencv_freetype=OFF ^
    -DBUILD_opencv_fuzzy=OFF ^
    -DBUILD_opencv_hdf=OFF ^
    -DBUILD_opencv_hfs=OFF ^
    -DBUILD_opencv_img_hash=OFF ^
    -DBUILD_opencv_intensity_transform=OFF ^
    -DBUILD_opencv_julia=OFF ^
    -DBUILD_opencv_line_descriptor=OFF ^
    -DBUILD_opencv_matlab=OFF ^
    -DBUILD_opencv_mcc=OFF ^
    -DBUILD_opencv_optflow=OFF ^
    -DBUILD_opencv_ovis=OFF ^
    -DBUILD_opencv_phase_unwrapping=OFF ^
    -DBUILD_opencv_plot=OFF ^
    -DBUILD_opencv_quality=OFF ^
    -DBUILD_opencv_rapid=OFF ^
    -DBUILD_opencv_reg=OFF ^
    -DBUILD_opencv_rgbd=OFF ^
    -DBUILD_opencv_saliency=OFF ^
    -DBUILD_opencv_sfm=OFF ^
    -DBUILD_opencv_shape=OFF ^
    -DBUILD_opencv_stereo=OFF ^
    -DBUILD_opencv_structured_light=OFF ^
    -DBUILD_opencv_superres=OFF ^
    -DBUILD_opencv_surface_matching=OFF ^
    -DBUILD_opencv_text=OFF ^
    -DBUILD_opencv_tracking=OFF ^
    -DBUILD_opencv_videostab=OFF ^
    -DBUILD_opencv_viz=OFF ^
    -DBUILD_opencv_world=ON ^
    -DBUILD_opencv_wechat_qrcode=OFF ^
    -DBUILD_opencv_xfeatures2d=OFF ^
    -DBUILD_opencv_ximgproc=ON ^
    -DBUILD_opencv_xobjdetect=OFF ^
    -DBUILD_opencv_xphoto=OFF ..


### Issue submission checklist

- [X] I report the issue, it's not a question
- [X] I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
- [X] I updated to the latest OpenCV version and the issue is still there
- [X] There is reproducer code and related data files (videos, images, onnx, etc)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions