我按照此处的说明进行操作: https://github.com/xianyi/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio 用于构建和安装 OpenBLAS,特别是 1.“本机 (MSVC) ABI”。
现在所有包含文件、库和 CMake 文件都在
C:/opt
中,就像它想要的那样。
然后我看到我可以在项目的 CMakeFile 中使用 FindBLAS,所以我添加了
FindBLAS()
,但显然这不是一个命令?
我看到每个提到 FindBLAS 的人都写道:
set(BLA_VENDOR OpenBLAS)
find_package(BLAS REQUIRED)
所以我实际上很困惑。什么是 FindBLAS?为什么我找不到任何人使用它的例子?
但是后来我尝试了随处可见的 set 和 find_package 路线并得到:
CMake Error at C:/Program Files/CMake/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find BLAS (missing: BLAS_LIBRARIES)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files/CMake/share/cmake-3.25/Modules/FindBLAS.cmake:1346 (find_package_handle_standard_args)
我尝试了设置环境变量,重置,我能想到的一切。我不知道为什么 CMake 拒绝查找库并更新
${BLAS_LIBRARIES}
。
CMake 发布了官方
FindBLAS.cmake
,您可以在这里看到:
https://github.com/Kitware/CMake/blob/master/Modules/FindBLAS.cmake
要解决您的问题,您可以添加
set(CMAKE_FIND_LIBRARY_PREFIXES ";lib")
在
find_package(BLAS)
调用之前,以便 CMake 的 find_library(openblas)
中的 FindBLAS.cmake
调用可以在 Windows 上正确找到 libopenblas.a
。