You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译依赖LAPACK的程序时遇-larmpl_lp64找不到错误求助

问题描述

编译依赖LAPACK的QP2程序时,出现链接错误:

FAILED: /home/parallels/qp2/src/basis_correction/basis_correction 
gfortran -g -ffree-line-length-none -I . -fPIC -march=native -fopenmp -I ao_basis/ -I ao_one_e_ints/ -I ao_two_e_erf_ints/ -I ao_two_e_ints/ -I aux_quantities/ -I basis/ -I becke_numerical_grid/ -I bitmask/ -I cas_based_on_top/ -I csf/ -I davidson/ -I davidson_undressed/ -I density_for_dft/ -I determinants/ -I dft_keywords/ -I dft_one_e/ -I dft_utils_func/ -I dft_utils_in_r/ -I electrons/ -I ezfio_files/ -I functionals/ -I mo_basis/ -I mo_one_e_ints/ -I mo_two_e_erf_ints/ -I mo_two_e_ints/ -I mpi/ -I mu_of_r/ -I nuclei/ -I pseudo/ -I two_body_rdm/ -I two_rdm_routines/ -I utils/ -I zmq/ /home/parallels/qp2/src/basis_correction/IRPF90_temp/basis_correction.irp.o /home/parallels/qp2/src/basis_correction/IRPF90_temp/basis_correction.irp.module.o /home/parallels/qp2/src/basis_correction/IRPF90_temp/irpf90.a -larmpl_lp64 /home/parallels/qp2/lib/libezfio_irp.a /home/parallels/qp2/lib/libf77zmq.a /home/parallels/qp2/lib/libzmq.a -lstdc++ -lrt -ldl -lz -o /home/parallels/qp2/src/basis_correction/basis_correction
/usr/bin/ld: cannot find -larmpl_lp64: No such file or directory
collect2: error: ld returned 1 exit status

已安装Arm Performance Libraries (ArmPL),但错误依旧。配置.cfg文件中相关配置为:

LAPACK_LIB   : -larmpl_lp64

ArmPL目录中存在名称相似的库文件,但不确定编译程序需要的具体文件。


解决步骤

1. 定位ArmPL库文件的实际路径

进入ArmPL的安装目录(比如默认路径/opt/arm/armpl,或你自定义的安装路径),查看lib子目录下的文件。你需要找的是:

  • 动态库:libarmpl_lp64.so
  • 静态库:libarmpl_lp64.a

注意ArmPL分x86_64和aarch64版本,必须和你的系统架构匹配。可以用file命令验证:

file /path/to/armpl/lib/libarmpl_lp64.so

输出应显示与当前系统一致的架构(比如x86-64或ARM aarch64)。

2. 让编译器识别库路径

方法一:修改配置文件

直接在.cfg文件的LAPACK_LIB中添加库路径(-L参数):

LAPACK_LIB   : -L/path/to/armpl/lib -larmpl_lp64

将/path/to/armpl/lib替换为你实际找到的ArmPL库目录。

方法二:设置环境变量

在编译前执行以下命令,让编译器能找到库文件:

# 编译时查找静态/动态库的路径
export LIBRARY_PATH=/path/to/armpl/lib:$LIBRARY_PATH
# 运行时查找动态库的路径
export LD_LIBRARY_PATH=/path/to/armpl/lib:$LD_LIBRARY_PATH

方法三:使用ArmPL的配置脚本

ArmPL通常会提供环境配置脚本(比如armpl.sh或armpl.csh),直接source即可自动配置路径:

source /path/to/armpl/bin/armpl.sh

3. 验证库的可用性

运行以下命令检查链接器能否找到库:

ld -larmpl_lp64 -L/path/to/armpl/lib --verbose

如果输出中显示找到libarmpl_lp64.so或libarmpl_lp64.a,说明路径配置正确。

4. 备选方案:使用系统自带LAPACK

如果ArmPL配置仍有问题,可以改用系统自带的LAPACK/BLAS库:

  1. 安装系统开发包(以Ubuntu为例):
    sudo apt install liblapack-dev libblas-dev
    
  2. 修改.cfg文件:
    LAPACK_LIB   : -llapack -lblas
    

内容的提问来源于stack exchange,提问作者chikako

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 00:45:24