<5>Linux-静态库和动态库

1 库及库的分类

  • 库本质:是二进制形式的目标代码(.o)
  • 库的作用?

† 库的分类:静态库和动态库(共享库)。

  • 静态库和动态库的区别

如果程序是在编译时加载库文件的,就是使用了静态库,静态库的文件名格式是”lib*.a”。 如果是在运行时加载目标代码,就使用了动态库,动态库的文件名格式是

2 静态库的创建

  • 第1步:编辑.c .h文件。
  • 第2步:生成.o文件 。
  • 第3步:ar –r 目标库文件名称(不成文规定,lib开头 .a结尾) 目标文件列表

例如:ar -r libmath.a f1.o

静态库的使用

  • 方法1:参数法[推荐]

格式:gcc main.c -l math -L ./

-L:告诉编译器去哪儿找该库(库路径)

如:gcc main.c –lmath –L ./

  • 方法2:直接法

格式:gcc main.c libmath.a

如何向一个已经存在的库增加模块

  • ar -r 创建静态库并将目标文件加入到静态库中。
  • ar –t 查看库中的模块名称
  • ar -d 删除库中的一些模块
  • ar -q 向库追加模块

3 动态库

动态库的创建

  • 第1步:编辑.c .h文件。
  • 第2步:生成.o文件。 gcc -c -fpic xxxx.c
  • 第3步:gcc -shared xxxxx.o yyyy.o -o libxxx.so
  • 将第2和3合并:gcc -shared -fpic xxx.c yyy.c -o libxxx.so

动态库的使用

  • 方法1:参数法[推荐]
  • 如:gcc main.c –lmath –L ./
  • 方法2:直接法
  • 格式:gcc main.c libmath.a
  • 注意:将libxxx.so放到/lib下

Original: https://www.cnblogs.com/zhang-a-d/p/14889611.html
Author: 他乡一故知
Title: <5>Linux-静态库和动态库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/615253/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • WebStorm正版购买要多少钱一年?

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年5月29日
    073
  • IDEA分析JAVA内存溢出和内存泄漏

    参考资料: 1、JProfiler分析dump文件 https://blog.csdn.net/axin1240101543/article/details/105142141 2…

    Java 2023年5月29日
    0108
  • python爬虫爬取国家科技报告服务系统数据,共计30余万条

    python爬虫爬取国家科技报告服务系统数据,共计30余万条 按学科分类【中图分类】 共计三十余万条科技报告数据 爬取的网址:https://www.nstrs.cn/kjbg/n…

    Java 2023年6月15日
    0113
  • 部署office在线预览服务器(Office Web Apps Server)

    引言为方便在web端方便的使用office。 简介 Office Online Server (OOS,下文简写为OOS ) 提供基于浏览器的 Word、PowerPoint、Ex…

    Java 2023年6月15日
    076
  • Java核心技术-内部类(下)

    Day8 局部内部类 优势: 对外部完全隐蔽 可以访问外部类字段和局部变量 package cn.gyk; import javax.swing.*; import java.aw…

    Java 2023年6月5日
    085
  • ngrok-server 服务端搭建

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年5月30日
    074
  • JAVA入门基础_从零开始的培训_JAVA中的正则表达式、处理文本的利器(五)

    正则表达式 基本语法 源码解析(基于上述代码) Matcher.find()方法 Matcher.group(int group)方法 二个常用类 Pattern(相当于一个正则表…

    Java 2023年6月9日
    083
  • 01、springboot 目录

    目录: 主要想把自己的学习成功记录下来,如果看到哪里写的不对,或者不明白都可以留言指正,共同进步 源码 02、SpringBoot 启动 总流程03、SpringBoot 启动 执…

    Java 2023年6月13日
    0116
  • CentOS7防火墙命令

    CentOS7防火墙命令 CentOS7防火墙命令 防火墙设置 设置开机启用防火墙 systemctl enable firewalld.service 设置开机禁用防火墙 sys…

    Java 2023年6月9日
    072
  • spring的自动注入

    Spring自动注入 spring的ioc 在刚开始学习spring的时候肯定都知道spring的两个特点:ioc,aop,控制反转和切面编程,这篇就只说说ioc ioc是什么:在…

    Java 2023年6月6日
    073
  • 数据类型(Java)

    数据类型分类 1.基本数据类型 数值类型: 整数类型: byte【(1个字节),范围:-128-127】 short【(2个字节),范围:-32768-32767】 int【(4个…

    Java 2023年6月9日
    071
  • m

    mybatis-plus配置文件 在MybatisPlusInterceptor下添加DynamicTableNameInnerInterceptor @Configuration…

    Java 2023年5月30日
    0112
  • 设计模式之责任链模式

    责任链模式又称职责链模式,属于行为型模式;在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请…

    Java 2023年6月5日
    099
  • 满襟酒气

    我本是槐花院落闲散的人,满襟酒气。 小池塘边跌坐看鱼,眉挑烟火过一生。 posted @2022-08-25 17:12 lslime 阅读(62 ) 评论() 编辑 Origin…

    Java 2023年6月15日
    065
  • spring 读取yaml配置文件

    从Spring框架4.1.0增加了对YAML的支持,Spring框架4.1.0 maven POM具有Snakeyaml依赖性 。 您可以在Spring Boot应用中使用两种方式…

    Java 2023年5月30日
    075
  • 1

    1 posted @2022-09-25 23:44 山海自有归期 阅读(21 ) 评论() 编辑 Original: https://www.cnblogs.com/ljq202…

    Java 2023年6月7日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球