[转帖]指定运行时动态库位置的三种方式

指定,运行,动态,位置,三种,方式 · 浏览次数 : 0

小编点评

**三种方法来指定动态库搜索路径:** 1. **在配置文件/etc/ld.so.conf中指定动态库搜索路径** ``` /lib /usr/lib ``` 2. **通过环境变量 LD_LIBRARY_PATH 指定动态库搜索路径** ``` export LD_LIBRARY_PATH=/root/code/opencv/opencv-3.2.0/build/build/lib#LD_LIBRARY_PATH ``` 3. **在编译目标代码时指定该程序的动态库搜索路径** ``` -Wl,-rpath=${LD_PATH} ```

正文

https://blog.csdn.net/gx_1983/article/details/78352457

指定运行时动态库位置的三种方式

  • 在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可通过三种方法来指定:方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径;方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径;方法三:在编译目标代码时指定该程序的动态库搜索路径。
    众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动 态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及该动态库的其它资源了。在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定。

通过gcc参数指定

  • 通过gcc参数制定之后就不需要配置环境变量和配置文件了。
-Wl,-rpath=${LD_PATH}  #-Wl,-rpath=<动态库所在路径>
g++ ${RPATH} ./opencv_knn.cpp -o knn

    通过设置环境变量

    • 只对当前shell有效,关闭shell或者退出当前用户则环境变量配置及无效了。
    export LD_LIBRARY_PATH=/root/code/opencv/opencv-3.2.0/build/build/lib
    #LD_LIBRARY_PATH=<动态库所在位置>

      通过配置文件

       修改/etc/ld.so.conf文件。
       其文件内容为:
       [root@VM_24_16_centos etc]# cat /etc/ld.so.conf
       include ld.so.conf.d/*.conf
       [root@VM_24_16_centos etc]# 
       所以,可以在文件夹/etc/ld.so.conf.d/中添加自己的文件,例如:创建文件gx.conf,
       然后在文件中添加动态库路径,例如:
           /root/code/opencv/opencv-3.2.0/build/build/lib
       注意,保存退出之后需要执行命令ldconfig刷新当前缓存。

        与[转帖]指定运行时动态库位置的三种方式相似的内容:

        [转帖]指定运行时动态库位置的三种方式

        https://blog.csdn.net/gx_1983/article/details/78352457 指定运行时动态库位置的三种方式 在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可通过三种方法来指定:方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径;方法二:

        【转帖】15.JVM栈帧的内部结构

        目录 1.JVM栈帧的内部结构 1.JVM栈帧的内部结构 栈帧存储的数据可以分为下面的5个部分: 1.局部变量表(重点) 2.操作数栈(重点) 3.动态链接,也称为指向运行时常量池的方法引用 4.方法返回地址,也称为方法退出或者异常退出的定义 5.一些附加信息 每个栈帧都有自己的大小,各个栈帧的大小

        【转帖】15.JVM栈帧的内部结构

        目录 1.JVM栈帧的内部结构 1.JVM栈帧的内部结构 栈帧存储的数据可以分为下面的5个部分: 1.局部变量表(重点) 2.操作数栈(重点) 3.动态链接,也称为指向运行时常量池的方法引用 4.方法返回地址,也称为方法退出或者异常退出的定义 5.一些附加信息 每个栈帧都有自己的大小,各个栈帧的大小

        [转帖]Jmeter 参数化

        一、Jmeter参数化概念 当使用JMeter进行测试时,测试数据的准备是一项重要的工作。若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据。 参数化是自动化测试脚本的一种常用技巧。简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取

        [转帖]Docker、containerd的关系

        Docker、containerd的关系 containerd囊括了单机运行一个容器时所需要的一切: 为了能够支持多种OCI Runtime,containerd 内部使用containerd-shim,每启动一个容器都会创建一个新的containerd-shim进程,指定容器ID,Bundle目录

        [转帖]JVM 参数

        https://www.cnblogs.com/xiaojiesir/p/15636100.html 我们可以在启动 Java 命令时指定不同的 JVM 参数,让 JVM 调整自己的运行状态和行为,内存管理和垃圾回收的 GC 算法,添加和处理调试和诊断信息等等。 JVM参数选项 类型一:标准参数选项

        [转帖]JVM类加载机制

        概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Cl

        [转帖]Redis 运维实战 第05期:RDB 持久化

        https://cloud.tencent.com/developer/article/1986826 前面一节,我们聊了 AOF,AOF 有个不足点就是:进行数据恢复时,需要逐一把日志都执行一遍,非常耗时间。 Redis 还有另外一种持久化方法:内存快照。指内存中的数据在某一时刻的状态记录,这个快

        [转帖]分享自己做的一个指定进程以及线程长时间cpu监控的工具

        https://cdn.modb.pro/db/329601 前言: 前面给大家分享过一个工作中用到的编译拷贝脚本,其实工作中还有一些其他工具的使用,今天再来分享一个自己纯手工的CPU监控的脚本。大家可以结合上篇文章与本篇文章一起学习shell。 主要实现功能: 1.监控指定进程是否运行 2.读取该

        [转帖]redis进程绑定指定的CPU核

        文章系转载,便于分类和归纳,源文地址:https://blog.csdn.net/youlinhuanyan/article/details/99671878 1)查看某服务的pid $ ps -aux|grep redis 1)显示进程运行的CPU #命令 $ taskset -p 21184 显