加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux库之静态库与动态库

发布时间:2022-10-15 06:01:15 所属栏目:Linux 来源:网络
导读: 文章目录
为什么引入库 分文件编程
如果我们在开发大型项目的时候,一个项目就只有一个主函数文件。这显然是不合理的,也不便于我们后面对项目的升级,以及功能的责任划分。
分文件编程,可

文章目录

为什么引入库 分文件编程

如果我们在开发大型项目的时候,一个项目就只有一个主函数文件。这显然是不合理的,也不便于我们后面对项目的升级,以及功能的责任划分。

分文件编程,可以使项目更加的模块化,便于升级以及维护。编译好的代码和数据也可以在事后供其他的程序使用。

分文件编程的好处

a,功能责任的划分

b,方便调试

c,主程序简洁

库又分为:静态库,动态库,共享库

一、静态库

静态函数库:是在程序执行之前就加载到程序之中也就是在编译阶段就加入

好处:运行速度快;发布程序无需提供静态库,已经在程序中,移植方便

缺点:链接时完整的拷贝到可执行程序中,被使用多少次就有多份冗余拷贝。

更新部署发布麻烦。(程序太大)

二、动态库

动态加载函数库:是在程序执行时动态(临时)由目标程序去调用

好处:程序小而简洁

缺点:运行速度慢;更新部署比较麻烦

静态库的生成与使用 静态库的制作

1.gcc xxx.c -c 生成xxx.o文件

2.ar rcs libxxx.a xxx.o 将xxx.o文件生成libxxx.a

静态库的使用

首先要想清楚linux动态库,被谁用?

肯定是主函数拿来用

gcc 主函数.c -lxxx -L ./

在这里插入图片描述

动态库的生成与使用(常用) 动态库的生成

在这里插入图片描述

在这里插入图片描述

动态库的使用

在执行程序时,需要将生成的.so文件放在/usr/lib下编译才不会出错

引用动态库,如何指定动态库的位置

export LD_LIBRARY_PATH=“.so的文件位置(pwd可以查看)”

查看静态/动态库文件的大小

du xxx

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!