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.程序使用共享库,编译链接后,可执行程序只标记到用到的库方法,并不包含,再次运行,动态链接到要用的共享库。
因此,含有静态库的程序占有内存较大。

相关推荐
Deitymoon14 小时前
linux——TCP服务器获取客户端IP地址
linux·服务器·tcp/ip
CDN36014 小时前
高防服务器磁盘 / CPU 爆满?攻击引流与资源扩容实战
运维·服务器·网络协议
小贾要学习14 小时前
【Linux】应用层自定义协议与序列化
linux·服务器·c++·json
white-persist14 小时前
【vulhub spring CVE-2018-1270】CVE-2018-1270 Spring Messaging 远程命令执行漏洞 完整复现详细分析解释
java·服务器·网络·数据库·后端·python·spring
freewlt14 小时前
OpenClaw 工作流自动化实战:打造你的智能定时任务中心
运维·servlet·自动化
Amnesia0_014 小时前
理解Linux中的OS管理和进程属性
linux·运维·服务器
十五年专注C++开发14 小时前
cpolar(极点云): 一款主流的内网穿透工具
linux·windows·cpolar·穿透
徒 花14 小时前
HCIP学习05 链路聚合(Eth-Trunk)+ VRRP
服务器·网络·学习·hcip
liliangcsdn14 小时前
LLM如何与mcp server交互示例
linux·开发语言·python
小夏子_riotous15 小时前
openstack的使用——7. 共享文件系统manila服务
linux·运维·服务器·系统架构·centos·openstack·运维开发