Linux如何搜索动态库

0x00 背景

在linux下安装一些程序,或者在做pwnable的时候经常出现没有找到动态库的情况。

0x01 如何链接动态库

链接动态库通常有五中方法:

  1. 链接时使用静态库,gcc编译时添加参数
  2. 使用LD_LIBRARY_PATH指定搜索路径, export LD_LIBRARY_PATH=`pwd`
  3. 编译时使用-rpath指定动态库的搜索路径
  4. 修改/etc/ld.so.conf,添加动态库搜索路径
  5. 复制动态库到系统默认的路径下,如/lib/usr/lib

0x02 动态库搜索路径的优先级

动态库搜索路径优先级由高到低排列情况如下:

  1. 编译时指定动态库搜索路径
  2. 环境变量LD_LIBRARY_PATH中的路径
  3. 配置文件/etc/ld/so.conf中的路径
  4. 系统默认的路径lib

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白鼠

Ionic3 Start

本文是Ionic3系列的第一排你文章,主要介绍开发环境的搭建过程,之后的文章将依赖此应用,不再涉及到环境搭建方面的内容(除非是添加特性),Ionic官方文档: ...

1032
来自专栏十月梦想

nodejs+express实现用户登录,注册以及退出操作

先从用户注册说起吧,毕竟注册才能去数据库增加数据,然后在增加校验,本次先从注册===>登录===>退出这个层次顺序说起!接下来看一下用户注册!

2272
来自专栏云计算教程系列

如何在Ubuntu 16.04上将Redis服务器设置为PHP的会话处理程序

Redis是一个开源键值缓存和存储系统,由于其对多种数据类型(如散列,列表,集合和位图等)的高级支持,也称为数据结构服务器。它还支持群集,使其在高度可用和可扩展...

1423
来自专栏jiajia_deng

管理 macOS 启动项

1294
来自专栏尾尾部落

Mac中的定时任务利器:launchctl

当然mac也可以像linux系统一样,使用crontab命令来添加定时任务,这里就不赘述,具体可参见:OS X 添加定时任务

4615
来自专栏别先生

JSP连接mysql数据库的重点

1:用mysql驱动把mysql与tomcat的连接起来。把mysql驱动包(不用解压)放到Tomcat安装目录中lib文件夹下即可。 ? 2:然后在自己的新...

3188
来自专栏Dawnzhang的开发者手册

@Component注解的解析

今天在写程序的时候看见一个以前没有见过的注解(@Component),在网上查找过后,经过实践,决定把它记录下来。

1793
来自专栏gaoqin31

CentOS 7.0网络配置

企业级Linux发行版CentOS安装过后默认是没有开启网络连接服务的,必须手动启动后才能使用网络服务。最新版CentOS 7.0安装后网络配置文件在/etc/...

9092
来自专栏流媒体

Linux下C++打包so文件以及使用(Socket项目示例)简介

这里重点在与-I和-L参数。在前面gcc编译参数中我们讲到-I指的是头文件的搜索目录,-L是动态库的搜索目录。 这里我们就成功的进行了编译。 然后运行./m...

1414
来自专栏Java后端技术栈

使用Redis存储Nginx+Tomcat负载均衡集群的Session

环境:Cent OS 7.0(虚拟机环境)、Nginx 1.9.8、Redis 3.2.1

1032

扫码关注云+社区

领取腾讯云代金券