zoukankan
html css js c++ java
Linux共享库简单总结
库
静态库
编译的二进制会重新包含一份静态库的副本
共享库
编译
gcc -shared -o file.c
-fPIC
链接
ld
ld-linux.so.2
可执行程序–>动态依赖表
流程:程序运行–>加载ld-linux.so.2–>搜索动态库路径寻–>路径下根据动态链接表搜索动态库 –> 搜索相应符号链接加载至内存执行
符号链接覆盖:简单的说是两个同名的函数具有相同的符号链接则会绑定第一次搜索到的符号链接函数
程序运行时搜索到共享库的三种方法
LD_PATH
/lib /usr/lib /etc/ld.config.d/ 下路径添加
-rpath 编译时选项
soname
库别名
真实库: libname.so.major.min –> libname.so.1.1
别名:libname.so.major–> libname.so.1
软链接:libname.so–>libname.so
软链接–>真实库
工具
ldd
nm
objdump
ldconfig
readelf
命名公约
查看全文
相关阅读:
Java 中节省 90% 时间的常用的工具类
一文彻底弄懂cookie、session、token
Java 中 this 和 super 的用法详解
java对接c++发布的webservice接口,其中参数类型有base64Binary格式(无需将图片数据转化为c++中的结构体)
mysql免安装版下载及安装教程
selenium python 入门-元素定位
软件测试白皮书-测试综合策略
软件测试白皮书-正交试验设计方法
软件测试白皮书-因果图
软件测试白皮书-判定表法
原文地址:https://www.cnblogs.com/unclemac/p/12783427.html
最新文章
Scrapy中的Setting
Windows下安装Redis并将其注册为系统服务
Ubuntu 重置MySQL密码
Ubuntu 配置Java+Tomcat
pyinstaller使用教程
Ubuntu16.04安装MySQL+JDBC
博客园搬家通告
软件工程(2019)结对编程第二次作业
使用GCP的Kubernetes部署项目时出现的编译问题
一次线上OOM解决记录:GC overhead limit exceeded
热门文章
使用spring boot配置Gmail邮箱发送邮件
【日常错误】spring-boot配置文件读取不到
【日常错误】Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl
Java并发编程:Callable、Future和FutureTask【转】
【设计模式大法】Iterator模式
【Java并发系列】----JUC之Lock
Java 理论与实践: 处理 InterruptedException【转】
理解Java对象序列化【转】
Netty 源码分析系列(二)Netty 架构设计
Netty 源码分析系列(一)Netty 概述
Copyright © 2011-2022 走看看