在 Windows 上使用 CMake 查找 OpenBLAS

问题描述 投票:0回答:1

我按照此处的说明进行操作: 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}

c++ windows cmake openblas
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.