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

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式