目录

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

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
木子欢儿2 小时前
Debian系统清理垃圾
linux·运维·服务器·debian
翻滚吧键盘2 小时前
查看debian的版本信息
运维·chrome·debian
Blockchina2 小时前
Python自动化脚本:2分钟快速搭建MTProto代理服务(支持多端口负载均衡)
运维·自动化·代理模式
字节源流2 小时前
【SpringMVC】常用注解:@SessionAttributes
java·服务器·前端
谷晓光2 小时前
python中print函数的flush如何使用
linux·服务器·数据库
Hacker_Albert2 小时前
Linux 内核模块签名
linux
点PY2 小时前
构建rknn的docker镜像
运维·docker·容器
AdrichPro3 小时前
4、linux c 进程
linux·运维·服务器·c语言
技术流Garen3 小时前
如何配置 Docker 以实现无需 sudo 使用
运维·docker
桂月二二3 小时前
云原生可观测性:智能运维的数据中枢
运维·云原生