You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下使用CMake查找OpenBLAS遇到的问题及困惑

解决CMake找不到OpenBLAS的问题

先澄清FindBLAS的定位

FindBLAS是CMake内置的模块文件,不是可直接调用的函数,正确用法是通过find_package(BLAS REQUIRED)触发该模块的搜索逻辑,配合set(BLA_VENDOR OpenBLAS)告诉CMake优先搜索OpenBLAS实现。

针对找不到BLAS_LIBRARIES的解决方案

1. 手动指定OpenBLAS根目录

CMake默认搜索路径不包含C:/opt,可以直接在CMakeLists.txt中添加根路径指定:

# 指定OpenBLAS的安装根目录
set(BLAS_ROOT "C:/opt")
# 告诉CMake优先搜索OpenBLAS
set(BLA_VENDOR OpenBLAS)
# 触发BLAS库搜索
find_package(BLAS REQUIRED)

# 后续链接你的目标时使用${BLAS_LIBRARIES}
target_link_libraries(你的目标名称 PRIVATE ${BLAS_LIBRARIES})

如果不想修改CMakeLists.txt,也可以在cmake配置阶段通过命令行参数传入:

cmake .. -DBLAS_ROOT=C:/opt -DBLA_VENDOR=OpenBLAS

2. 手动导入OpenBLAS库(兜底方案)

如果自动搜索仍失败,直接手动指定头文件和库文件路径:

# 添加OpenBLAS的头文件目录
include_directories("C:/opt/include")

# 手动导入静态库(根据你编译的版本调整库文件名,Debug版可能是libopenblas_debug.lib)
add_library(OpenBLAS STATIC IMPORTED)
set_target_properties(OpenBLAS PROPERTIES
    IMPORTED_LOCATION "C:/opt/lib/libopenblas.lib"
    INTERFACE_INCLUDE_DIRECTORIES "C:/opt/include"
)

# 链接时直接使用OpenBLAS目标
target_link_libraries(你的目标名称 PRIVATE OpenBLAS)

3. 检查安装目录结构

确认C:/opt下的目录结构符合预期:

  • C:/opt/include:包含cblas.h、openblas_config.h等头文件
  • C:/opt/lib:包含libopenblas.lib(静态库)或openblas.lib(动态库导入库)
  • 如果是动态库,C:/opt/bin下要有openblas.dll

4. 验证BLA_VENDOR的兼容性

CMake 3.14及以上版本支持BLA_VENDOR=OpenBLAS,你使用的3.25版本没问题,但注意参数值的拼写(区分大小写,必须是OpenBLAS)。

内容的提问来源于stack exchange,提问作者Shadow0144

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:45:11