1.库是预编译的目标文件(object  files)的集合,它们可以被链接进程序。静态库以后缀为”.a”的特殊的存档存储,用于静态链接。

在linux环境中,使用ar命令创建静态库文件,生成目标文件.o,然后生成静态库.a。

使用静态库生成的可执行文件放在目标板中可以直接运行。

2.共享库,也是动态库,是在可执行程序启动时加载到执行程序中,可以被多个执行程序共享使用,使用动态库编译生成的程序相对较小,但运行时需要库文件支持。

共享库的制作,使用的gcc命令,首先创建object文件,创建共享库的输入文件可为.c/.cpp文件,用命令参数-shared表示创建共享库。

使用动态库生成的可执行文件,需将生成的动态库也拷贝到目标板的连接文件目录。

它们的区别:

静态库被程序静态链接于编译时,而共享库被动态链接于运行时。

静态库中不能包含共享库,而共享库中可以包含静态库。

当静态库中某个模块更新后,需要重新编译链接生成相应的可执行文件;若共享库中某个模块更新了,只要接口没有改变,就不需要重新编译链接生成可执行文件。

静态库与共享库制作,及区别相关推荐

  1. 静态库和共享库之间的区别?

    静态库和共享库有什么区别? 我使用Eclipse,并且有几种项目类型,包括"静态库"和"共享库"? 一个人比另一个人有优势吗? #1楼 对于静态库,链接器从库中 ...

  2. 在Linux平台上如何使用接静态库和共享库

    1.Linux函数库介绍 函数库可以看做是事先编写的函数集合,它可以与主函数分离,从而增加程序开发的复用性.Linux中函数库可以有3种使用的形式:静态.共享和动态. 1)         静态库的代 ...

  3. C 语言编程 — 静态库、动态库和共享库

    目录 文章目录 目录 文章目录 程序函数库 静态链接 创建静态库文件 动态链接 创建共享库文件 共享库文件的名字 共享库文件的存储路径 LD_LIBRARY_PATH 环境变量 ldconfig 指令 ...

  4. linux系统中 库分为静态库和,你知道linux 静态库和共享库?

    1.静态库和共享库 静态库和共享库(动态库),二者的不同点在于代码被载入的时刻不同. 静态库的代码在编译过程中已经被载入可执行程序,因此体积较大. 共享库的代码是在可执行程序运行时才载入内存的,在编译 ...

  5. UNIX再学习 -- 静态库与共享库

    一.库 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.由于Windows和linux本质不同,因此二者库的二进制是不兼容的.库有两种:静态库(.a..lib)和共享库也称动态库 ...

  6. 【Linux】静态库与共享库

    库文件:特定功能的实现,为用户提供一些调用接口 libc : printf scanf malloc free stdio.h malloc.h 函数声明 编译 连接 符号解析 找到符号对应的定义位置 ...

  7. 【Linux基础】静态库和共享库(如何自定义库文件?)

    文章目录 前言 一.库文件的基本知识 1.库文件分类 2.库文件命名 二.如何自定义静态库? 1.静态库简介 2.具体流程(详细步骤) 3.静态库缺点 三.如何自定义共享库? 1.共享库简介 2.具体 ...

  8. Linux--共享文件夹、库文件、库分类(静态库、共享库)

    目录 1.库文件: 2.库的分类: 3.操作代码: 4.静态库的生成及使用 (1)先将需要生成库文件的所有.c文件编译成.o文件; (2)创建静态库(使用ar命令) (3)静态库的使用 5.静态库的缺 ...

  9. 静态库,共享库,动态库 elf格式的

    3.2 使用     3.3 环境变量    3.4 创建共享库    3.5 安装与使用    3.6 兼容性  4.动态加载    4.1 dlopen()    4.2 dlerror()    ...

  10. 【Linux学习】静态库和共享库

    目录 一.什么是静态库 静态库的创建和应用(含例子) 二.什么是共享库 共享库的创建和应用(含例子) 三.静态库和共享库的区别 一.什么是静态库 静态库(.a):程序在编译链接的时候把库代码链接到可执 ...

最新文章

  1. 管理员必知:服务器基准测试方法与误区
  2. Kubernetes最佳实践S01E05:如何优雅地终止
  3. 让人心动的电子工艺品
  4. 网站SEO优化中导入链接有哪些作用?
  5. Maven安装和配置环境变量
  6. Re:从 0 开始的微服务架构--(四)如何保障微服务架构下的数据一致性--转
  7. Linux 定制X86平台操作系统
  8. 【网址收藏】k8s中helm方式安装postgresql及pgadmin
  9. CodeForces - 1341D Nastya and Scoreboard(dp+贪心)
  10. 使用url参数在C4C的html5 UI和Fiori UI之间做切换
  11. .net的retrofit--WebApiClient库深入篇
  12. python requests https_解决python的requests模块访问私有SSL证书产生的报错问题
  13. java父包引用_父类引用指向子类对象(java)
  14. Arturia Prophet Mac音频插件:将Prophet 5,Prophet VS,Prophet Hybrid三种不同音乐合成器于一体
  15. smbus使用 树莓派_Linux控制I2C/SMBus设备
  16. POJ - 3624 (01背包问题)(动态规划-滚动数组)
  17. android录屏存在什么位置,安卓视频录制在哪里
  18. 光速不变原理引发的诡异现象与时空分量的解释
  19. 置信区间 置信水平 边际误差
  20. 【Node.js】关于Node.js接口的详解和案例--restful风格接口。案例:添加商品接口,添加员工接口,删除员工接口

热门文章

  1. 解决SublimeREPL安装后输入字符且回车后没有输出的问题
  2. 参考文献起止页码怎么写_【求助】有全文参考文献但没有起止页码如何办
  3. 黑马程序员—[JavaEE就业薪资] JavaEE+云计算7期,就业率97%,平均工资7610元!
  4. SEM竞价入门的4个基本常识|零基础必看
  5. 【读书笔记】码农翻身 - 简介
  6. 临时手机短信云接收(防骚扰)
  7. java写一个android程序_【Android开发笔记】3.编写第一个Android程序
  8. Linux下的LWP(轻量级进程)、进程 、 线程、用户级线程、内核线程
  9. App 测试中 ios 和 Android 有哪些区别
  10. 锤子使用手册 android,锤子爱好者的新手使用指南