Linux程序部署无法加载SO文件问题解决方案

您所在的位置:网站首页 iweboffice2022加载不上 Linux程序部署无法加载SO文件问题解决方案

Linux程序部署无法加载SO文件问题解决方案

2024-07-12 23:00| 来源: 网络整理| 查看: 265

本文主要介绍Linux系统上程序部署时,无法加载SO文件问题解决方案(作者:李栓鹏)。

Linux程序安装部署运行方式与我们熟知的Windows程序有很大的不同:

在Windows上,一般EXE程序加载DLL的路径顺序是:首先是当前路径,然后是系统配置的PATH环境变量

在Linux上,可执行程序加载动态库SO文件的路径顺序是:系统配置的LD_LIBRARY_PATH路径。(当前路径不在加载SO的路径上)

也就是说,如果在Linux上将程序部署在非标准路径上,程序如果需要加载自己实现的SO文件,会找不到SO文件,即使SO文件和程序在同一个目录。

在开发层面,即使使用dlopen手动加载SO文件,除非使用绝对路径,否则也不能打开

可以使用ldd命令查看当前程序所需要加载的SO是否都能找到:ldd ./程序名

解决Linux部署出现上述问题的方案有两种:

第一种:将程序按照标准方式部署安装

第二种:配置当前LD_LIBRARY_PATH,将当前路径加入到LD_LIBRARY_PATH

对于第二种方案,这里给出一个一劳永逸的方案,达到与Windows下相同的效果:

修改配置文件,如果只想改当前用户,则修改 /bashrc或/bash_profile,如果想修改整个系统则修改/etc/profile 建议修改当前用户配置文件

这里以修改当前用户的配置为例:

在配置文件中新增两行(如果只想将某个路径加入,修改下面的./为希望加入的路径,例如:/usr/local)

LD_LIBRARY_PATH=./

export LD_LIBRARY_PATH

修改完成之后保存文件,注销当前用户重新登录即可



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3