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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在实际的开发过程中,编写程序往往都需要依赖很多基础的底层库,比方说平时用的较多的标准C库,数学库等等;我们会频繁的使用这些库里的函数,这些函数大多数都是前人为我们写好的,所以值得庆幸的是我们的工作不必从零开始,我们要做的只是在恰当的位置调用合适的库函数去实现相应的功能,充分利用前人的劳动成果,就是“站在巨人的肩膀上”。本文主要简述Linux下库的制作以及使用方法。
# Q4 t, [& O+ P. R7 ~7 y3 L$ C& @. n4 e) Y! F% s2 \: Q( Q- R$ y' \
一、什么是库' k# Z: F7 C0 }& m" A

0 `  M- n$ a. d- J库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。根据链接时期的不同,库又有:静态库和共享库(动态库)二者的不同点在于代码被载入的时刻不同。! T2 R; l# i7 H5 Z8 i
* y$ @4 G" D' Z$ |6 [9 H' E
静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。- |3 z! b/ ~8 ]' b3 F& K
2 ~% m) u- g2 D. K7 \% |" [
共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。- V7 n7 m" l6 w9 h& A7 m  G0 J' a" r
2 [) C- c/ J( w# u
二、初识静态库与动态库3 |5 B2 |- F  J4 {; B
2 S5 K9 B3 [' k0 o+ ~
1.静态函数库

1 A& Q! R$ Y& _8 P: `- H9 F) `+ [" B8 A, o' e' [. D
这类库的名字一般是libxxx.a,xxx为库的名字。利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。
: l# v5 w( ?! n0 ^
2 s  Q1 t# @  k, v' P2.动态函数库  N- Z' t1 f0 E* U& o$ \
' R1 R, \4 A1 x$ c5 g
游客,如果您要查看本帖隐藏内容请回复
8 q; n* v* r3 m
+ Q/ s& }  P' V1 q' Z8 R  j

% R3 ?5 s1 }  m8 ?4 {

! V1 o4 ~1 Y0 `. o" l# l4 G, x" {% {# n  G3 O8 h+ q7 x& G( J6 l5 ]# k0 Q
$ m+ Q" n  v0 g: V5 k* P

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 08:34 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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