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

Linux库之静态库与动态库

发布时间:2022-11-01 10:25:48 所属栏目: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
 

(编辑:我爱资讯网)

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