Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到

Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到

这次在windows的WSL2中遇到了一个非常奇怪的错误,就是

bash 复制代码
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find BLAS (missing: BLAS_LIBRARIES)
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.22/Modules/FindBLAS.cmake:1337 (find_package_handle_standard_args)
  cmake/ExternalBLASLAPACK.cmake:181 (find_package)
  CMakeLists.txt:148 (include)

此前,我已经使用下面的命令安装了依赖包:

bash 复制代码
sudo apt-get install libblas-dev
sudo apt-get install libatlas-base-dev
sudo apt install libopenblas-dev

使用下面命令进行包的查找,也没有问题:

bash 复制代码
ldconfig -p | grep blas

使用whereis blas命令进行查找,也ok:

bash 复制代码
whereis blas


所以最后确认是cmake的搜索路径问题

1、cmake时候指定路径

在cmake时候指定路径,即可完成cmake(!!!注意一定要删除当前的cmake缓存,也就是build文件夹下的cmake相关内容)

bash 复制代码
 cmake .. -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu/

对于删除cmake缓存,我直接用下面命令把build文件夹下面东西都删除了:

bash 复制代码
 rm -rf *

2、修改Cmakelist内容

第二种方法,可以在Cmakelist中进行路径指定,将库的路径赋予CMAKE_PREFIX_PATH这个路径 可以由上面展示的命令ldconfig -p | grep blas 返回内容得到:

bash 复制代码
  set(OPENBLAS_DIR /usr/lib/x86_64-linux-gnu/)
  list(APPEND CMAKE_PREFIX_PATH ${OPENBLAS_DIR})

  find_package(BLAS REQUIRED)
  find_package(LAPACK REQUIRED)

修改完内容后记得清除cmake缓存,不然可能还会报错!!!

相关推荐
未济9 小时前
linux 配置环境变量
linux
傲世仙尊9 小时前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫10 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.11 小时前
进程间通信
linux
AI职业加油站11 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
Liuqy-0512 小时前
Linux IO编程——静态库、动态库
linux
此冬歌咏12 小时前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
彧azz12 小时前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅13 小时前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog13 小时前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发