libifport.so.5: cannot open shared object file: No such file or directory

libifport.so.5: cannot open shared object file: No such file or directory

本文主要解决在linux环境下调用Fortran动态库失败的问题。

一、问题描述

在centos7.9系统上,我在通过python调用Fortran编译的动态库文件forcn.so时报错libifport.so.5: cannot open shared object file: No such file or directory

二、解决过程

1. 确定问题原因

根据 ldd forcn.so 命令的输出,可以看到 forcn.so 缺少以下动态链接库:

  • libifport.so.5
  • libifcore.so.5
  • libimf.so
  • libsvml.so
  • libintlc.so.5
    在这里插入图片描述
    这些缺失的库是 Intel Fortran Compiler 的运行时库。由于它们缺失,导致 forcn.so 无法正确加载。
    解决这个问题的关键是确保这些运行时库存在,并且能够被系统正确找到。通常,这些库应该是通过安装 Intel Fortran Compiler 来获得的,但是在某些情况下,它们可能被安装在非标准路径下。

2. 拷贝依赖的动态库

理论上只需要将forcn.so与其他的依赖库放到同级目录下就可以识别到。
将编译环境的依赖文件放到目标动态库同级目录下,

此时可以看到链接正常:
在这里插入图片描述

3. 设置环境变量

但这时python脚本仍然调用不了这个so文件,还需要将动态库的路径添加到环境变量中:

  1. 编辑配置文件,将so文件所在的目录写到配置文件里。
    vi /etc/ld.so.conf
    
    在这里插入图片描述
  2. 让动态链接库为系统所共享
    ldconfig
    
  3. 查看环境变量
    echo $LD_LIBRARY_PATH
    
    在这里插入图片描述
  4. 此时python就能正常调用forcn.so动态库了,注意脚本中的forcn.so文件的路径。

三、安装linux下编译fortran的环境

1. 运行install.sh安装脚本

将从官网下载的压缩包解压到想要存放的目录
在这里插入图片描述
运行文件夹下的install.sh
在这里插入图片描述

2. 通过证书安装

运行过程中,会要求输入序列号,这时选择通过证书安装,输入证书路径。
在这里插入图片描述

3. 安装成功

接下来无脑下一步,安装成功,这是最后一步安装成功界面:
在这里插入图片描述

4. 缺少环境变量

安装成功后执行ifort --version,报错command not found
在这里插入图片描述

5. 设置环境变量

  1. vi ~/.bashrc
  2. 在.bashrc文件的末尾添加以下行,将安装路径添加到PATH环境变量中:export PATH=/opt/intel/bin:$PATH
  3. 在vi编辑器中,按下Esc键,然后输入:wq并按Enter键保存文件
  4. 使更改生效:执行以下命令使更改生效:source ~/.bashrc
  5. 验证:输入以下命令验证是否已成功添加到PATH环境变量中:echo $PATH
  6. 输出结果:
    在这里插入图片描述

6. 缺少所需的32位动态链接库

还是报错,系统缺少所需的32位动态链接库,导致无法运行32位的ifort二进制文件。
在这里插入图片描述
解决此问题的一种方法是安装系统的32位兼容性库:yum install glibc.i686

7.安装共享文件

安装成功后继续报错,系统缺少名为libgcc_s.so.1的共享库文件:
在这里插入图片描述
这个错误提示意味着系统缺少名为libgcc_s.so.1的共享库文件,安装 libgcc 的 32 位版本:yum install libgcc.i686

8. 安装成功

安装完成后,再次运行ifort --version,成功。
运行成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值