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

通过Conan安装OpenBLAS后CMake无法找到BLAS库的问题排查

问题:CMake无法找到通过Conan安装的OpenBLAS库

我正在开发一个基于Fortran语言、依赖BLAS库的项目,已通过Conan成功安装OpenBLAS,但CMake始终无法找到BLAS库。

配置信息

CMakeLists.txt

cmake_minimum_required(VERSION 3.6.0)
project(test Fortran)
find_package(BLAS REQUIRED)

conanfile.txt

[requires]
openblas/0.3.26

[generators]
CMakeDeps
CMakeToolchain

[layout]
cmake_layout

构建批处理脚本

RMDIR /S /Q build
MKDIR build
CD build

SET "PATH=C:\Windows\System32\;C:\Program Files\CMake\bin;C:\Users\%USERNAME%\AppData\Roaming\Python\Python312\Scripts\;"
CALL "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
xcopy /s ..\conanfile.txt conanfile.txt
conan install ..\conanfile.txt --build=missing
cmake -G "Ninja" .. -DCMAKE_Fortran_COMPILER=ifort -DCMAKE_BUILD_TYPE=Release
CD ..

报错信息

CMake Error at C:/Program Files/CMake/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find BLAS (missing: BLAS_LIBRARIES)

原因分析
  1. CMake原生FindBLAS模块不兼容Conan配置:CMake自带的FindBLAS模块默认按系统路径、环境变量等逻辑搜索库,不会自动识别Conan通过CMakeDeps生成的OpenBLAS配置文件,而Conan安装的包位于本地缓存或指定构建目录,不在默认搜索路径内。
  2. 未应用Conan生成的工具链文件:使用CMakeToolchain生成器时,必须在CMake调用时指定对应的工具链文件,否则CMake无法感知Conan管理的依赖环境。

解决方法

方法一:直接使用Conan生成的OpenBLAS目标(推荐)

修改CMakeLists.txt,跳过原生find_package(BLAS),直接调用Conan生成的OpenBLAS配置:

cmake_minimum_required(VERSION 3.6.0)
project(test Fortran)

# 加载Conan生成的OpenBLAS配置
find_package(OpenBLAS REQUIRED)

# 假设存在可执行目标test,链接OpenBLAS库
add_executable(test your_source.f90)
target_link_libraries(test PRIVATE OpenBLAS::OpenBLAS)

方法二:让原生FindBLAS识别Conan安装的库

修改批处理脚本中的CMake调用命令,添加Conan生成的工具链文件参数:

cmake -G "Ninja" .. -DCMAKE_Fortran_COMPILER=ifort -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake

工具链文件会引导CMake读取Conan生成的依赖配置,此时原生find_package(BLAS)就能找到OpenBLAS。

额外注意事项

  • 确认build目录下已生成conan_toolchain.cmake和OpenBLASConfig.cmake文件,这是Conan安装成功的标志。
  • 避免Intel oneAPI环境干扰:如果环境中存在Intel MKL,CMake的FindBLAS可能优先选择MKL,可通过设置环境变量BLAS_VENDOR=OpenBLAS强制指定使用OpenBLAS。

内容的提问来源于stack exchange,提问作者Foad S. Farimani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:22:20