静态库与共享库制作,及区别
1.库是预编译的目标文件(object files)的集合,它们可以被链接进程序。静态库以后缀为”.a”的特殊的存档存储,用于静态链接。
在linux环境中,使用ar命令创建静态库文件,生成目标文件.o,然后生成静态库.a。
使用静态库生成的可执行文件放在目标板中可以直接运行。
2.共享库,也是动态库,是在可执行程序启动时加载到执行程序中,可以被多个执行程序共享使用,使用动态库编译生成的程序相对较小,但运行时需要库文件支持。
共享库的制作,使用的gcc命令,首先创建object文件,创建共享库的输入文件可为.c/.cpp文件,用命令参数-shared表示创建共享库。
使用动态库生成的可执行文件,需将生成的动态库也拷贝到目标板的连接文件目录。
它们的区别:
静态库被程序静态链接于编译时,而共享库被动态链接于运行时。
静态库中不能包含共享库,而共享库中可以包含静态库。
当静态库中某个模块更新后,需要重新编译链接生成相应的可执行文件;若共享库中某个模块更新了,只要接口没有改变,就不需要重新编译链接生成可执行文件。
静态库与共享库制作,及区别相关推荐
- 静态库和共享库之间的区别?
静态库和共享库有什么区别? 我使用Eclipse,并且有几种项目类型,包括"静态库"和"共享库"? 一个人比另一个人有优势吗? #1楼 对于静态库,链接器从库中 ...
- 在Linux平台上如何使用接静态库和共享库
1.Linux函数库介绍 函数库可以看做是事先编写的函数集合,它可以与主函数分离,从而增加程序开发的复用性.Linux中函数库可以有3种使用的形式:静态.共享和动态. 1) 静态库的代 ...
- C 语言编程 — 静态库、动态库和共享库
目录 文章目录 目录 文章目录 程序函数库 静态链接 创建静态库文件 动态链接 创建共享库文件 共享库文件的名字 共享库文件的存储路径 LD_LIBRARY_PATH 环境变量 ldconfig 指令 ...
- linux系统中 库分为静态库和,你知道linux 静态库和共享库?
1.静态库和共享库 静态库和共享库(动态库),二者的不同点在于代码被载入的时刻不同. 静态库的代码在编译过程中已经被载入可执行程序,因此体积较大. 共享库的代码是在可执行程序运行时才载入内存的,在编译 ...
- UNIX再学习 -- 静态库与共享库
一.库 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.由于Windows和linux本质不同,因此二者库的二进制是不兼容的.库有两种:静态库(.a..lib)和共享库也称动态库 ...
- 【Linux】静态库与共享库
库文件:特定功能的实现,为用户提供一些调用接口 libc : printf scanf malloc free stdio.h malloc.h 函数声明 编译 连接 符号解析 找到符号对应的定义位置 ...
- 【Linux基础】静态库和共享库(如何自定义库文件?)
文章目录 前言 一.库文件的基本知识 1.库文件分类 2.库文件命名 二.如何自定义静态库? 1.静态库简介 2.具体流程(详细步骤) 3.静态库缺点 三.如何自定义共享库? 1.共享库简介 2.具体 ...
- Linux--共享文件夹、库文件、库分类(静态库、共享库)
目录 1.库文件: 2.库的分类: 3.操作代码: 4.静态库的生成及使用 (1)先将需要生成库文件的所有.c文件编译成.o文件; (2)创建静态库(使用ar命令) (3)静态库的使用 5.静态库的缺 ...
- 静态库,共享库,动态库 elf格式的
3.2 使用 3.3 环境变量 3.4 创建共享库 3.5 安装与使用 3.6 兼容性 4.动态加载 4.1 dlopen() 4.2 dlerror() ...
- 【Linux学习】静态库和共享库
目录 一.什么是静态库 静态库的创建和应用(含例子) 二.什么是共享库 共享库的创建和应用(含例子) 三.静态库和共享库的区别 一.什么是静态库 静态库(.a):程序在编译链接的时候把库代码链接到可执 ...
最新文章
- 管理员必知:服务器基准测试方法与误区
- Kubernetes最佳实践S01E05:如何优雅地终止
- 让人心动的电子工艺品
- 网站SEO优化中导入链接有哪些作用?
- Maven安装和配置环境变量
- Re:从 0 开始的微服务架构--(四)如何保障微服务架构下的数据一致性--转
- Linux 定制X86平台操作系统
- 【网址收藏】k8s中helm方式安装postgresql及pgadmin
- CodeForces - 1341D Nastya and Scoreboard(dp+贪心)
- 使用url参数在C4C的html5 UI和Fiori UI之间做切换
- .net的retrofit--WebApiClient库深入篇
- python requests https_解决python的requests模块访问私有SSL证书产生的报错问题
- java父包引用_父类引用指向子类对象(java)
- Arturia Prophet Mac音频插件:将Prophet 5,Prophet VS,Prophet Hybrid三种不同音乐合成器于一体
- smbus使用 树莓派_Linux控制I2C/SMBus设备
- POJ - 3624 (01背包问题)(动态规划-滚动数组)
- android录屏存在什么位置,安卓视频录制在哪里
- 光速不变原理引发的诡异现象与时空分量的解释
- 置信区间 置信水平 边际误差
- 【Node.js】关于Node.js接口的详解和案例--restful风格接口。案例:添加商品接口,添加员工接口,删除员工接口
热门文章
- 解决SublimeREPL安装后输入字符且回车后没有输出的问题
- 参考文献起止页码怎么写_【求助】有全文参考文献但没有起止页码如何办
- 黑马程序员—[JavaEE就业薪资] JavaEE+云计算7期,就业率97%,平均工资7610元!
- SEM竞价入门的4个基本常识|零基础必看
- 【读书笔记】码农翻身 - 简介
- 临时手机短信云接收(防骚扰)
- java写一个android程序_【Android开发笔记】3.编写第一个Android程序
- Linux下的LWP(轻量级进程)、进程 、 线程、用户级线程、内核线程
- App 测试中 ios 和 Android 有哪些区别
- 锤子使用手册 android,锤子爱好者的新手使用指南