在 Ubuntu 24.04 系统上执行 bash install_deps.sh 时,即使 libblas-dev 和 liblapack-dev 已安装,脚本仍报告 cblas.h not found,并重复执行 apt install,最终报错 "BLAS/LAPACK installation failed, please install manually"。
bash install_deps.sh
libblas-dev
liblapack-dev
cblas.h not found
apt install
根因:Ubuntu 24.04 的 libblas-dev 将 cblas.h 安装在 multiarch 路径 /usr/include/x86_64-linux-gnu/cblas.h,但脚本只检查以下两个位置:
cblas.h
/usr/include/x86_64-linux-gnu/cblas.h
/usr/include/cblas.h
/usr/local/include/cblas.h
导致检测失败。
脚本应能检测到 multiarch 路径下的 cblas.h,正确判断 BLAS/LAPACK 已安装,跳过重复安装。
==== Checking BLAS/LAPACK ==== cblas.h not found Installing BLAS/LAPACK... Executing command: sudo apt update Executing command: sudo apt install -y libblas-dev liblapack-dev BLAS/LAPACK installation failed, please install manually
实际 cblas.h 位置:
修复方案:新增 find_cblas_header() 函数,通过 dpkg-architecture -qDEB_HOST_MULTIARCH 获取 multiarch 路径,在多个标准位置查找 cblas.h。修复后脚本正确检测到 /usr/include/x86_64-linux-gnu/cblas.h。
find_cblas_header()
dpkg-architecture -qDEB_HOST_MULTIARCH
问题描述
在 Ubuntu 24.04 系统上执行
bash install_deps.sh时,即使libblas-dev和liblapack-dev已安装,脚本仍报告cblas.h not found,并重复执行apt install,最终报错 "BLAS/LAPACK installation failed, please install manually"。根因:Ubuntu 24.04 的
libblas-dev将cblas.h安装在 multiarch 路径/usr/include/x86_64-linux-gnu/cblas.h,但脚本只检查以下两个位置:/usr/include/cblas.h/usr/local/include/cblas.h导致检测失败。
环境信息
重现步骤
libblas-dev和liblapack-devbash install_deps.sh预期结果
脚本应能检测到 multiarch 路径下的
cblas.h,正确判断 BLAS/LAPACK 已安装,跳过重复安装。日志 / 截图
实际
cblas.h位置:备注
修复方案:新增
find_cblas_header()函数,通过dpkg-architecture -qDEB_HOST_MULTIARCH获取 multiarch 路径,在多个标准位置查找cblas.h。修复后脚本正确检测到/usr/include/x86_64-linux-gnu/cblas.h。