首页 > 系统相关 >Linux下指定so动态库的加载路径的5种方法

Linux下指定so动态库的加载路径的5种方法

时间:2024-02-12 10:44:59浏览次数:21  
标签:ld 路径 etc so conf Linux 动态 加载

搜索的先后顺序是:

  1. 编译目标代码时指定的动态库搜索路径;
  2. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
  3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径;
  4. 默认的动态库搜索路径/lib;
  5. 默认的动态库搜索路径/usr/lib。

将库文件放置在对应的路径中,运行时就可以搜索到了。

例1:通过gcc参数指定

-Wl,-rpath=${LD_PATH}#-Wl,-rpath=<动态库所在路径>

g++ ${RPATH} ./opencv_knn.cpp -o knn

例2:通过设置环境变量指定

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/mqtt/MQTT-c/lib

例3:通过配置文件

修改/etc/ld.so.conf文件。 其文件内容为:

[root@VM_24_16_centos etc]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf

所以,可以在文件夹/etc/ld.so.conf.d/中添加自己的文件,例如:创建文件gx.conf, 然后在文件中添加动态库路径,例如: /root/code/opencv/opencv-3.2.0/build/build/lib

注意:保存退出之后需要执行命令ldconfig刷新当前缓存。

内容来自知乎
https://zhuanlan.zhihu.com/p/654440835

标签:ld,路径,etc,so,conf,Linux,动态,加载
From: https://www.cnblogs.com/lixiaomeng/p/18013725

相关文章

  • Linux之parted
    【摘要】parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区,并且允许调整分区的大小。使用它你可以创建、清除、调整、移动和复制ext2、ext3、linux-swap、FAT、FAT32和reiserfs分区;也能创建、调整和移动苹果系统的HFS分区;还能检测jfs、ntfs......
  • 二十、基于Bootstrap和FontAwesome制作页面
    调整项目目录结构:在项目statics目录下,创建JS、CSS、Plugins文件,分别用于存放js、css和第三方插件。Bootstrap:提供现成的样式+效果1、下载Bootstrap在boostrap官网下载用于生产版本的bootstrap,放在plugins文件夹。2、Html中引入Bootstrap的css<head>...<linkrel="style......
  • Linux Bash Shell 脚本入门(2)——GNU
    ​LinuxBashShell脚本入门(2)——GNU目录LinuxBashShell脚本入门(2)——GNUGNU与LinuxGNUGNU的组成ShellGNOME桌面环境XWindow软件GNOME可点击内容,大部分来自维基百科,可以点击了解详情。GNU与LinuxGNUGNU操作系统起源于GNU计划,由理查德·斯托曼在麻省理工学院人工智能......
  • [转帖]linux参数之max_map_count
    https://www.cnblogs.com/duanxz/p/3567068.html “Thisfilecontainsthemaximumnumberofmemorymapareasaprocessmayhave.Memorymapareasareusedasaside-effectofcallingmalloc,directlybymmapandmprotect,andalsowhenloadingsharedlibr......
  • Eigen中变换矩阵Eigen::Isometry3d T的使用方法(左乘和右乘)
    https://zhuanlan.zhihu.com/p/610439768?utm_id=0 一、基本定义Eigen::Isometry3dT_imu_to_lidar=Eigen::Isometry3d::Identity()转换矩阵本质是一个4*4的矩阵二、操作方法.translation():无参数,返回当前变换平移部分的向量表示(可修改),可以索引[]获取各分量.rotation(......
  • Linux之bond 和 team
    一、bond和team区别bond只能是双网卡绑定,team不需要手动加载相应内核模块和有更强的拓展性,最高可以绑定8块网卡。二、模式bond模式(1)mode=0(balance-rr)(平衡轮循环策略)链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路。交换机需要配置静态链路聚合。特......
  • 解决jstack的报错:Unable to open socket file
    原文网址:​​解决jstack的报错:Unabletoopensocketfile_IT利刃出鞘的博客-CSDN博客​​简介说明本文介绍解决jstack的报错的方法,报错信息为:Unabletoopensocketfile。分享Java技术星球:​​自学精灵-IT技术星球​​详细报错信息:进程号:Unabletoopensocketfile:......
  • Linux Bash Shell 脚本入门(1)——Linux内核功能介绍
    ​LinuxBashShell脚本入门(1)——Linux内核功能介绍目录LinuxBashShell脚本入门(1)——Linux内核功能介绍前言Linux初探Linux系统架构linux内核系统内存管理软件程序管理硬件设备管理文件管理系统前言本文为《Linux命令行与shell脚本编程大全》第四版的读书笔记,突发奇想想......
  • Sample-Efficient Deep Reinforcement Learning via Episodic Backward Update
    发表时间:2019(NeurIPS2019)文章要点:这篇文章提出EpisodicBackwardUpdate(EBU)算法,采样一整条轨迹,然后从后往前依次更新做experiencereplay,这种方法对稀疏和延迟回报的环境有很好的效果(allowssparseanddelayedrewardstopropagatedirectlythroughalltransitionso......
  • Linux 中awk批量输出列
     001、方法1双文件[root@PC1test1]#lsa.txtcols.list[root@PC1test1]#catcols.list##列1358[root@PC1test1]#cata.txt##测试文件00100200300400500600700800901001101201301401501601701801902002102202302402......