【静态库的制作_Linux】

01 / 什么是库

◼ 库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类。

◼ 库是特殊的一种程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行。

◼ 库文件有两种,静态库和动态库(共享库),

静态库和动态库的区别:

  • 静态库在程序的链接阶段被复制到了程序中;

  • 动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。

库的好处:

  • 代码保密

  • 方便部署和分发

静态库的缺点:

  • 静态库的内容改变了,那么程序的调用者必须重写编译。

02 / 静态库的制作

◼ 命名规则:

◆ Linux : libxxx.a

lib : 前缀(固定)
xxx : 库的名字,自己起
.a : 后缀(固定)

◆ Windows :

libxxx.lib

◼ 静态库的制作:

◆ gcc 获得 .o 文件

◆ 将 .o 文件打包,使用 ar 工具(archive)
	ar rcs libxxx.a xxx.o xxx.o
	r – 将文件插入备存文件中
	c – 建立备存文件
	s – 索引

◼ Linux创建静态库的步骤如下:

1 编辑源文件(比如.c或.cpp文件)。

2 通过gcc -c xxx.c 或g++ -c xxx.cpp生成目标文件(即.o文件)。

3 用ar归档目标文件,生成静态库。

4 配合静态库写一个头文件,文件里的内容就是提供给外部使用的函数、变量或类的声明。

03 / 示例

1、创建一个模拟计算器的多文件程序

在这里插入图片描述

2、生成 .o 文件

gcc -c add.c div.c  mult.c  sub.c 

在这里插入图片描述

3、生成libtest.a静态库

ar rcs libcalc.a  add.o div.o mult.o sub.o

在这里插入图片描述

注意:所生成的.a文件的名字前3位是lib,否则在链接时,就可能导致找不到这个库。

部分参考:chengqiuming_C++静态库的创建和使用实战

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千北@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值