linux--静态库和动态库(3)

news/2024/7/5 18:35:52

静态和动态的比较

公共函数制成函数库
函数库是编译时完成的,链接成一个可执行文件。程序运行时,不用用到函数库,因为需要的函数已经拷到相应文件下。—–静态库(xxx.a)
把对一些库函数的链接载入推迟到程序运行的时期—–动态链接库(xxx.so)

区别静态库动态库
编译阶段需要的代码连接进可执行程序需要函数时,函数映射找到函数调入堆栈执行
可执行文件大小小(要附带动态库)
效率较快

动态库优点(c库采用动态库)
- 进程之间资源共享(调用一个函数会先查看所有正在运行的程序,看内存是否有此函数的拷贝,有的话就共享此拷贝,没有才链接。可以节省内存)
- 程序升级简单(只需升级动态库,无需重新编译链接)
- 由程序员决定需求链接,高效

创建三个文件
/*main.c*/
#include <stdio.h>
#include "my.h"
int main()
{
   func();
    return 0;
}


/*my.h*/
#include <stdio.h>
#include "my.h"
int main()
{
   func();
    return 0;
}

/*my.c*/
#include <stdio.h>
#include "my.h"
void func()
{
    printf("111111111111111");
}


//静态库.a(编译时,一次编译,永久执行)
1.gcc -c my.c -o my.o
2.ar rcs libmy.a my.o
3.静态库编译:#gcc main.c -lmy -L..表示当前目录查找静态库)

//动态库.so(运行时,运行时才会找库)
1.gcc -c my.c -o my.o
2.gcc –shared –fPIC my.o –o libmy.so
3.gcc test.c -lmy -L.
4../out

http://www.niftyadmin.cn/n/4005717.html

相关文章

删除centos虚拟桥接网卡

2019独角兽企业重金招聘Python工程师标准>>> ip link set virbr0 down brctl delbr virbr0 ip link delete virbr0-nic 转载于:https://my.oschina.net/jiaoyanli/blog/889294

DIV无法自动高度,IE8无法自动高度

额外标签法这种方法就是向父容器的末尾再插入一个额外的标签&#xff0c;并令其清除浮动&#xff08;clear&#xff09;以撑大父容器。这种方法浏览器兼容性好&#xff0c;没有什么问题&#xff0c;缺点就是需要额外的&#xff08;而且通常是无语义的&#xff09;标签。我个人不…

操作系统基本原理(下)

文件管理* 索引文件 文件和树型目录结构 位示图 数据传输控制方式 微内核操作系统* 虚拟设备与SPOOLING技术&#xff1a;将你的指令缓存起来&#xff0c;程序代替你排队

容器日志处理及实现

容器日志 输出形式&#xff1a; 目前容器日志有两种输出形式&#xff1a; stdout,stderr 标准输出这种形式的日志输出我们可以直接使用docker logs查看日志&#xff0c; k8s 集群中同样集群可以使用kubectl logs类似的形式查看日志。 日志文件记录这种日志输出我们无法从以上方…

数据库系统(上)

文章目录数据库模式ER模型关系代数与元祖演算规范化理论函数依赖范式模式分解数据库模式 三级模式-两级映射 数据库的设计过程 ER模型 关系代数与元祖演算 并&#xff0c;交&#xff0c;差 笛卡尔积&#xff0c;投影&#xff0c;选择 联接 规范化理论 函数依赖 部分依赖&am…

scrapy从入门到放弃 学习项目4

scrapy框架基于selenium&#xff0c;多页面爬取简书文章内容、作者&#xff0c;ajax技术传递的数据等 保存到MongoDB中 class JieshuxSpider(CrawlSpider):name jieshuxallowed_domains [jianshu.com]start_urls [https://www.jianshu.com/]rules (Rule(LinkExtractor(allo…

图解css3:核心技术与案例实战. 1.1 什么是CSS3

1.1 什么是CSS3 CSS3并不是一门新的语言。如果接触过CSS就知道&#xff0c;CSS是创建网页的另一个独立但并非不重要的一部分。CSS是种层叠样式表&#xff0c;是一种样式语言&#xff0c;用来告诉浏览器如何渲染你的Web页面。 CSS3是CSS规范的最新版本&#xff0c;在CSS2.1的基…

python基础知识四 小数据池,深浅拷贝,集合+菜中菜

四、小数据池&#xff0c;深浅拷贝&#xff0c;集合菜中菜 1小数据池 --缓存机制&#xff08;驻留机制&#xff09; ​ 判断两边内容是否相等 ​ is 基于内存地址进行判断是否相同 a 10 b 10 print(a b ) #is print(a is b)小数据池的数字范围&#xff1a; -5 ~256 a -5…