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缓存,不然可能还会报错!!!

相关推荐
白菜欣8 分钟前
Linux —进程概念
linux·运维·服务器
iuu_star11 分钟前
Vue+FastAPI 项目宝塔Linux部署指南
linux·运维·fastapi
杜哥无敌13 分钟前
FreeSSHd vs FileZilla Server vs SFTPGo:Windows SFTP服务器易用性终极横向测评
运维·服务器·windows
楼田莉子14 分钟前
仿Muduo的高并发服务器:Channel模块与Poller模块
linux·服务器·c++·学习·设计模式
zhouwy11315 分钟前
Linux网络编程从入门到精通
linux·c++
zhangrelay19 分钟前
ROS Kinetic-信号与系统-趣味案例
linux·笔记·学习·ubuntu
IMPYLH20 分钟前
Linux 的 tail 命令
linux·运维·服务器·bash
生成论实验室21 分钟前
《事件关系阴阳博弈动力学:识势应势之道》第五篇:安全关键关系——故障、障碍与冲突
运维·服务器·人工智能·安全·架构
weixin_4462608522 分钟前
应用实战篇:利用 DeepSeek V4 构建生产级 AI 应用的全流程与最佳实践
大数据·linux·人工智能
maosheng114628 分钟前
RHCE的第一次笔记
服务器·网络·笔记