思路:一般来说,通过make命令已经将程序依赖的动态库编译出来了,通过make install命令已经将动态库安装到系统的某个路径下。找没找到动态库就看这个路径是否包含在系统默认搜索动态库的路径中,如果不在,那么就会提示找不到动态库。以下三种方法,就是根据前面的分析来解决的。

方法一:修改LD_LIBRARY_PATH环境变量

特点:这种方法主要处理临时的动态库加载,LD_LIBRARY_PATH环境变量修改后,只能是对当前的用户生效。

LD_LIBRARY_PATH的作用:这个环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。

具体步骤:

1、找到动态库所在路径:sudo find / -name "[动态库名字]"

2、打开~/.bashrc文件

3、在该文件最后一趟添加:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:[动态库所在的绝对路径]

4、source ~/.bashrc

方法二:修改/etc/ld.so.conf配置文件

特点:对所有用户生效。不是每个操作系统都有这个配置文件,就Ubuntu系统有。

/etc/ld.so.conf的作用:记录了程序加载运行期间查找动态链接库时的路径。

具体步骤:

1、找到动态库所在路径:sudo find / -name "[动态库名字]"

2、打开/etc/ld.so.conf文件:sudo vi /etc/ld.so.conf

3、在最后一行添加动态库的绝对路径

4、重新加载/etc/ld.so.conf文件:sudo ldconfig -v

方法三:创建动态库的软连接(推荐)

特点:让所有用户生效;并且通用,只要是Linux类型的操作系统,都会去/usr/lib目录下去找动态库。

具体步骤:

1、找到动态库所在路径:sudo find / -name "[动态库名字]"

2、创建动态库软连接:ln -s [动态库] [待创建的软链接]

注意:

1、创建软连接的时候要用绝对路径,如果用相对路径,会导致只在当前路径有效,其他路径这个软连接就找不到了。

2、不建议用cp的方式代替ln -s的方式。原因:当动态库升级的时候,有可能导致动态库版本不一致,还是链接的旧版本。

解决Linux系统下程序找不到动态库的方法的更多相关文章

  1. 如何查看Linux系统下程序运行时使用的库?

    Linux系统下程序运行会实时的用到相关动态库,某些场景下,比如需要裁剪不必要的动态库时,就需要查看哪些动态库被用到了. 以运行VLC为例. VLC开始运行后,首先查看vlc的PID,比如这次查到的V ...

  2. 如何解决Linux 系统下 ifconfig 命令无网络接口 ens33

    今天我在做Redis的哨兵集群模式的时候,以前都是好的,也不知道从什么时候开始就无法连接Redis服务器了,就是运行如下命令,没有效果:redis-server redis.conf,然后在通过命令查 ...

  3. 解决Linux系统下Mysql数据库中文显示成问号的问题

    当我们将开发好的javaWEB项目部署到linux系统上,操作数据库的时候,会出现中文乱码问题,比如做插入操作,发现添加到数据库的数据中文出现论码,下面就将解决linux下mysql中文乱码问题! 打 ...

  4. linux系统下C语言调用lapack ,blas库

    在利用C语言编程,经常调用其他的软件包,其中lapack,blas库是最常用的两个库,这里讲下在linux系统下,C语言编程如何调用这两个库: 1.首先讲下blas库的调用,这里以两个向量内积函数为例 ...

  5. Linux系统下root密码遗忘等系统故障的修复方法 - 运维总结

    IDC机房有一台centos系统的服务器,由于这台服务器的系统装了好长时间,且root密码中间更新过几次,后面去机房现场维护时,登陆密码遗忘了,悲催啊~没办法,只能开机进入“单用户模式”进行密码重置了 ...

  6. libevent 实现的socket 通信 server以及解决找不到动态库的方法

    注: client 个人觉得没必要用 libvent来实现就没写 注:由于 涉及到回调函数的使用 如有疑惑的可以先去了解回调函数的实现机理 先来说一下 libevent主要是干啥的 : 内部封装了 s ...

  7. python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题

    问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下 ...

  8. linux 系统下apache 找不到apxs 文件

    yum install httpd-devel

  9. linux系统下php安装mbstring扩展的二种方法

    .执行 复制代码代码如下: yum install php-mbstring 2. 修改php.ini (这一步非常重要, 部分lxadmin版本无法自动修改) 复制代码代码如下: echo ‘ext ...

随机推荐

  1. 您只能在 HTML 输出流中使用 document.write。如果您在文档已加载后使用它(比如在函数中),会覆盖整个文档。

    刚刚接触JS,看到这句话时一时没搞懂,想了终于有了一些眉目,意思就是在文档加载过后,如果我们用比方说按钮的方式重新加载文档,就会把文档都覆盖: 列如: <!DOCTYPE html> &l ...

  2. CSS + DIV 让页脚始终底部

    一 前言 经常设计页面时用到三层DIV,头DIV与脚DIV一般固定高度,而中间层DIV根据内容的多少,高度不定,我们经常希望但内容很少时,脚DIV保持在底部,当内容很多时,脚DIV被中间内容挤到下面, ...

  3. 初学android之简易的网易页面

    WangYiActivity.java: public class WangYiActivity extends Activity implements OnClickListener{ public ...

  4. .net 制作二维码

    首先  要下载  ThoughtWorks.QRCode.dll 下载地址:http://download.csdn.net/detail/lybwwp/6861821 然后新建项目 把Thought ...

  5. (Hibernate进阶)Hibernate映射——多对多关联映射(八)

    多对多映射是现实生活中最常见的映射,也是最容易理解的映射.废话少说,直接开始. 映射原理 不论是单向关联还是双向关联都是通过第三张表,将两个表中的主键放到第三张做一个关联.用第三张表来解决可能会造成数 ...

  6. 数据库——DQL(语句查询)

    查询的基本结构: 概念: 查询(DQL)是数据库中最为常用和复杂的一种SQL结构,学会编写查询SQL是程序员必须具备的能力. 要从数据库中查询数据,我们要使用SQL的SELECT语句.标准SELECT ...

  7. JSON.parse

    摘自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse The J ...

  8. oracle的over函数应用(转载)

    摘自: http://www.poluoluo.com/jzxy/201004/81921.html 百度文库也记载了Oracle中over()分析函数的用法 在泡坛子的时候中无意中发现了这个函数,才 ...

  9. python 序列化 json pickle

    python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...

  10. MySQL 第八天(核心优化二)

    一.昨天内容回顾 存储引擎 保存数据的格式(技术),不同格式体现特性不一样 myisam ① 结构.数据.索引 文件单独存储 ② 存入数据顺序(不考虑主键顺序) ,写入数据速度快 ③ 并发性,低,锁整 ...