Linux库

1、库是什么

  1. 功能函数整合成一个库,库包含了编译好的代码和数据,方便使用
  2. 程序函数库分为:静态库,动态库,共享库

2、库分类

2.1静态库

  1. 程序执行前,就编译加入到目标程序里了
  2. 用gcc编译,在gcc后用-l来指定这个库函数
  3. 不想让人看到源代码,可以使用静态库

2.2动态库

  1. 程序执行时,由目标程序去调用
  2. 跟window的.dll相似

3、库的优缺点

静态库
优点:
1.运行快
2.发布程序无需提供静态库,因为已经在程序中(app中),移植方便
缺点:
1.程序大
2.更新,部署,发表麻烦。因为要重新编译生成目标程序
动态库
优点:
1.程序小
2.更新升级简单,因为app中没有库源代码,升级库就可以升级app
缺点:
1.运行慢,加载速度慢
2.发布程序需要提供动态库

4、库的制作

4.1静态库

静态库的格式xxx.a
1.生成xxx.o文件
gcc 文件名 -c
例:gcc ser.c -c
2.生成静态库文件
ar rcs lib库名.a xxx.o
例:ar rcs libser.a ser.o
ar是指令,rcs是指令参数,可以ar --help查看ar的参数说明

4.2动态库

动态库格式xxx.so
1.生成动态库文件
gcc -shared -fpic 文件名 -o lib库名.so
-shared:指定生成动态库
-fpic:fpic选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码。
例:gcc -shared -fpic ser.c -o libser.so

5、库的使用

静态库
gcc 编译的文件 -l库名 库查找路径(默认查找/usr/include)
例:gcc server.c -lser -L ./
动态库
编译和静态库一样,gcc server.c -lser -L ./ -o ser
动态库使用
1.查看系统环境变量命令export
2.通常环境变量一个宏:export LD_LIBRARY_PATH="动态库位置pwd命令出来"
指定该程序运行时候,在LD_LIBRARY_PATH所指定的路径去找库文件

注:临时环境变量,这种方法只能在一个终端窗口使用,换一个窗口就不能使用了

可以写一个脚本:
1.vi shart.sh
在这里插入图片描述
2.加一个可执行权限:chmod +x shart.sh
3.直接执行shart.sh
或者直接把库放到
/usr/lib文件夹下,但是不建议这样做

师承上官可编程 —— 陈立臣

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dz小伟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值