7-LINUX--库文件的生成与使用

一.什么是库文件

库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在:/lib 和 /usr/lib。
在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在
/usr/include 下或其子目录下。
库有两种,一种是静态库,其命令规则为 libxxx.a,一种是共享库,其命令规则为 libxxx.so,
如下图所示:

二.静态库的生成与使用

1.静态库的生成

以下是需要生成静态库的".c"文件,其中"foo.h"中是函数的声明,"add.c"和"max.c"
是函数的定义:

具体步骤:

三.共享库的生成与使用

1.共享库的生成

以下是需要生成共享库的".c"文件,其中"foo.h"中是函数的声明,"add.c"和"max.c" 是函数的定义:

具体步骤

四.环境变量

如果库不在标准位置下,也可以通过设置环境变量"LD_LIBRARY_PATH"来指定加
载库的路径。

五.静态库和共享库的区别

1.程序使用静态库,编译后,用到的库方法会复制到可执行程序中,再次运行,直接运行当前程序,不要连接静态库。
2.程序使用共享库,编译链接后,可执行程序只标记到用到的库方法,并不包含,再次运行,动态链接到要用的共享库。
因此,含有静态库的程序占有内存较大。

相关推荐
@t.t.23 分钟前
Docker容器资源控制--CGroup
linux·运维·docker·容器·云计算
像风一样自由202026 分钟前
浏览器自动化工具:Selenium 和 Playwright
运维·selenium·自动化
林九生29 分钟前
【运维】Ubuntu apt 更新失败?Temporary failure resolving ‘cn.archive.ubuntu.com‘ 问题
运维·ubuntu·postgresql
不想当程序猿_37 分钟前
Centos 7系统 宝塔部署Tomcat项目(保姆级教程)
linux·redis·centos·tomcat·minio·宝塔
吴声子夜歌38 分钟前
Linux运维——Vim基础
linux·运维·vim
星释1 小时前
阿里云服务迁移实战: 05-OSS迁移
服务器·阿里云·云计算
Zz_waiting.1 小时前
网络原理 - 11(HTTP/HTTPS - 2 - 请求)
运维·网络·网络协议·mysql·http·https·抓包
davenian2 小时前
< 自用文 rclone > 在 Ubuntu 24 访问 Google Drive 网络内容
linux·ubuntu·rclone
单车少年ing2 小时前
linux两个特殊的宏 _RET_IP_ 和_THIS_IP_ 实现
linux·arm