Linux下静态库的创建和使用

本文详细介绍了静态库的概念,包括其优缺点,并通过实例演示了如何在Linux环境下创建和调用静态库。首先,通过编译源代码生成目标文件,然后使用ar命令创建静态库,最后讲解了直接调用和通过环境变量调用静态库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态库:静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。
静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系。静态库的优点是执行速度快;缺点是占用空间大,被多次使用就会有多份冗余拷贝。当静态库中的内容发生变化时,需要重新编译出新的程序,因此不能轻易修改库中的内容。

静态库文件以.a结尾,在Linux系统下需以lib开头。

接下来我们以创建一个libmath.a为例讲解如何创建一个静态库和调用静态库。

1、创建静态库

编译源代码:gcc -c add.c sub.c 生成目标文件 add.o sub.o
打包生成静态库:ar -r libmath.a add.o sub.o
ar命令的一些参数:
	-r 把目标文件添加到静态库中,已经存在的更新
	-q 将目标文件追加到静态库的末尾
	-d 从静态库中删除目标文件
	-t 显示静态库中有哪些目标文件
	-x 把静态库拆分成目标文件

2、调用静态库

可以直接调用静态库,但调用者要和库在同一路径下
	gcc main.c libmath.a
也可以通过设置环境变量,步骤如下:
	1.打开文件:vim ~/.bashrc
	2.在文件末尾添加一行:export LIBRARY_PATH=$LIBRARY_PATH:库文件的路径(如果需要删除环境变量,需要在~/.bashrc中删除环境变量后,关掉终端,重新启动终端才能生效)
	3.重新加载配置文件:source ~/.bashrc
	4.编译时要指定库名:gcc main.c -lmath(-l 的意思是链接里加库,这里的math意为libmath.a去掉lib和.a)。
也可以在编译的时候设置编译参数:-L库的路径
	gcc main.c -L路径 -lmath
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值