嵌入式学习笔记5-库

库文件是用来保存函数和变量的仓库,用户只能使用库文件里的函数或者变量,但是并没有办法看到这些函数是如何实现的。
在linux系统中,库文件有两个存放位置,一种是系统启动和运行需要的库,放在/lib目录中,另一种是应用程序启动或运行需要加载的库,放在usr/lib中。
库分为两种,静态库和动态库。两者名字都在前面加lib,静态库以.a为后缀,在程序编译时加载。动态库以.so为后缀,在程序运行时加载。

两者的主要区别在于:
1.升级的难易程度不同,使用动态库的程序直接替换库文件,易于升级;使用动态库的程序要重新编译,难以升级;
2.静态库生成的可执行文件大,占用内存多;动态库生产的可执行文件小,占用内存少;
3.使用动态库编译的程序运行编译速度快于静态库,反之,使用静态库的程序编译速度较慢;
4.使用动态库编译的程序运行时间慢于静态库;
5.使用动态库难以部署,使用静态库更容易部署;

linux环境下如何创建库:
创建动态库:
gcc -c -o add.o add.c
gcc -shared -fpic -o libadd.so add.c
创建静态库:
gcc -c add.c add.o
ar rcs libadd.a add.c

如何使用库:
两种库使用方法相同,通过-I(小写L)指定库名(如 -ladd 使用名为libadd.a的库),-L指定库文件目录(默认只到/lib和/usr/lib寻找)
gcc -o main -ladd -L. main.c
如何存在同名的静态库和动态库,优先使用动态库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值