库的制作

静态库:

制作生成:

1、写源文件,通过 gcc -c xxx.c 生成目标文件。

2、.c转换成文件名.o ar ( -)rcs lib库名.a
(用 ar 归档目标文件,生成静态库。)
3、配合静态库,写一个使用静态库中函数的头文件。
4、使用静态库时,在源码中包含对应的头文件,

链接时记得链接自己的库(自动默认库在系统文件中),

将静态库copy到库目录(/usr/lib或者/lib)下:
cp lib文件名.a /usr/lib/lib文件名.a

rc:静态库不存在就生成该库
s:有该库则更新

-l库名  -L库可查询的存放路径 

动态库:

一、基本概念

1. 动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。库中函数和变量的地址是相对地址,不是绝对地址,其真实地址在调用动态库的程序加载时形成。

2. 动态链接库的名称有别名(soname), 真名(realname)和链接名(linker name)。别名由一个前缀lib,然后是库的名字,再加上一个后缀“.so”构成。真名是动态链接库真实名称,一般总是在别名的基础加上一个小版本号,发布版本等构成。除此之外,还有一个链接名,即程序链接时使用的库的名字。

3.在动态链接库安装的时候,总是复制文件到某个目录下,然后用一个软连接生成别名,在库文件进行更新的时候,仅仅更新软链接即可。

二、制作生成

1、编写源文件。
2、将一个或几个源文件编译链接,生成共享库。
3、通过 -L<path> -lxxx 的gcc选项链接生成的libxxx.so。
4、把lib文件名.so放入链接库的标准路径,或指定 LD_LIBRARY_PATH,才能运行链接了lib文件名.so的程序。

创建:

gcc -shared -fPIC -o 库名.so 源文件.c

使用:

gcc - 源文件.c ./ 库名,so -o 可执行文件名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值