找回密码
 注册
关于网站域名变更的通知
查看: 363|回复: 2
打印 上一主题 下一主题

怎样在Linux下制作动态库和静态库?又是怎样使用的?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-10-11 10:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在实际的开发过程中,编写程序往往都需要依赖很多基础的底层库,比方说平时用的较多的标准C库,数学库等等;我们会频繁的使用这些库里的函数,这些函数大多数都是前人为我们写好的,所以值得庆幸的是我们的工作不必从零开始,我们要做的只是在恰当的位置调用合适的库函数去实现相应的功能,充分利用前人的劳动成果,就是“站在巨人的肩膀上”。本文主要简述Linux下库的制作以及使用方法。5 O4 I( t- T( d! |- C! Y

1 x2 A* G- i2 D( H- X: }一、什么是库. M3 O, [/ {  B" b. c; K

  y0 t$ s3 w' w. g* d, P! u库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。根据链接时期的不同,库又有:静态库和共享库(动态库)二者的不同点在于代码被载入的时刻不同。
; D# W- F; d; _' l! Z7 ~0 c# g" G, u% M- o7 Z$ r% Y% B
静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。1 Q! ?: i- q( C9 u! M+ d

- t" y" j" L6 R; l: j! _  D8 P共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。% g/ F1 H: Q. g8 D/ `. D8 d* b

; b8 y7 t( Q) M9 X4 k( u二、初识静态库与动态库
7 c( R# X3 B7 D  N/ _" e4 `  c! L
1.静态函数库
+ [2 T; O2 a8 e  i( D

: E' u+ f  h7 q/ O- H2 Y这类库的名字一般是libxxx.a,xxx为库的名字。利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。  c: F$ O% M- O

4 ]( K+ Q9 o0 R8 @5 u- I2.动态函数库
& f8 V: z0 ^/ d8 L& ~4 ^' Q
# U6 Y, D0 V0 o, N: `
游客,如果您要查看本帖隐藏内容请回复
- G- I7 \4 v; G/ N

9 _' m. X+ h6 J, Y4 E* ~0 b' v. B. i; p; ~. e0 H
+ k& s0 e% v( `
8 x$ O) i" R8 e5 w) o

# m5 U" P- C; p- V

该用户从未签到

3#
发表于 2019-10-12 20:14 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 01:48 , Processed in 0.171875 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表