操作系统之动态库和静态库

什么是库?

平时在写代码的时候会经常添加一些头文件,添加这些头文件其实是让编译器从一个目录下去寻找这个文件,这个目录就是我们常说的库。在Linux中库一般存放在user/lib目录。库就是将一些常用的函数的目标文件打包在一起,提供相应的函数接口,以便于使用。

什么是静态库?

静态库就是在编译连接的时候,将库中的代码连接直接复制到可执行文件中,这样程序在运行的时候就不用去连接动态库了。静态库的这个连接过程就是静态链接。

什么是动态库?

动态库就是程序在运行的时候才去连接动态库的代码,可以多个程序共享动态库中的代码,这个动态库的连接过程就是动态链接,也就是在执行文件开始之前将外部函数的机器码有系统从磁盘上对应的动态库中向内存复制一份。

静态库和动态库的区别?

1、动态库是在运行时有系统调用库函数实现链接,代码较小巧。而静态库是在链接是复制到代码中,代码量比较庞大,冗余度高。
2、由于静态库是通过复制的方式,所以他在编译连接之后就不再需要静态库,代码的可以执行强,但是动态库由于是利用本地的库函数,如果将代码移植到其他电脑会出现运行bug等,可移植性差。
3、动态库必须放在指定的目录下完成连接,但是静态库只需要给出链接文件的路径就可以。
4、他们的相同点就是在库文件中不能出现main函数,库都是用来提供函数接口的,不暴露源代码,所有的库的目的都是为了增加代码的复用,可共享性,减小冗余。
5、在windows中静态库是后缀是.lib,动态库是.dll,在Linux中静态库是.a,动态库是so。
6、使用ar创建静态库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一篇文章搞懂数据仓库:数据仓库规范设计

目录 一、为什么要进行规范设计? 二、设计规范 - 指标 三、命名规范 - 表命名 3.1 常规表 3.2 中间表 3.3 临时表 3.4 维度表 四、开发规范 五、流程规范 一、为什么要进行规范设计? 无规矩、不方圆。规范设计是在具体开发工作之前制定的&…

asm字节码操作 方法的动态修改增加

asm 4.0 版本 http://forge.ow2.org/plugins/scmsvn/index.php?group_id23 asm是java的字节码操作框架,可以动态查看类的信息,动态修改,删除,增加类的方法。 下面基于4.0版本的一个使用示例,演示了对类Foo进行修改方法…

vim基本命令

最实用的几个: 0(数字0)移动到本行第一个字符上 $ 移动到行尾 。 3$ 移动到下面3行的行尾 gg 移动到文件头。 [[ G(shift g) 移动到文件尾。 ]] /text  查找text,按n健查找下一个,按…

map的详解及常见面试题

map的概念 map是STL中的一个关联式容器,它提供一对一的K-V的数据处理能力,由于这个特性,在我们需要完成Key-Value数据处理的时候可以很方便的调用。map的底层结构是红黑树,这棵树对数据有自动排序的功能,所以map中的数…

无处不在的人工智能,IBM沃森的20个行业应用

来源:资本实验室聚焦前沿科技创新与传统产业升级自2011年在美国综艺电视节目《危险边缘》中一战成名后,IBM的Watson就一直是最受关注的人工智能之一。从菜谱分析到球队管理,从健康顾问到酒店礼宾服务,Watson基于自然语言处理和机器…

自定义店招应该具有的基本功能

今天正式开始制作我的第一套SDK2.0模板。 首先是制作店铺的招牌,因为我个人习惯把首页的样式先制作在PSD中,然后参照PSD,由上至下进行编码实现!在此前,我一度想过使用默认的店招,但是他真的是太不方便了&a…

一篇文章搞懂数据仓库:数据仓库架构-Lambda和Kappa对比

在介绍Lambda和Kappa架构之前,我们先回顾一下数据仓库的发展历程: 传送门-数据仓库发展历程 写在前面 咳,随着数据量的暴增和数据实时性要求越来越高,以及大数据技术的发展驱动企业不断升级迭代,数据仓库架构方面也在…

epoll精讲

epoll - I/O event notification facility 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降…

宇宙和你,本质上其实只是个八维数字?

剑桥大学的数学物理学家Cohl Furey正在寻找粒子物理标准模型和八元数之间的联系。八元数的乘法规则被编码在被称为法诺面的三角图中。来源: 环球科学对于一维、二维乃至四维的数字,人们都不陌生:一维的实数一直都存在于经典物理中&#xff0c…

Fedora 安装QQ2012

1.下载软件包:http://www.everbox.com/f/yLDb2jlpP9WBVvXlSkzC5JKuD9 2.依次执行一下命令 cd /root # 文件存储路径 tar -zxvf qq2012.tar.gz -C /opt # 解压到/opt路径下,注意权限 cd /opt ls cd qq2012/wineapp/qq/ ls ./ins…

一篇文章搞懂数据仓库:数据应用--OLAP

目录 1、OLAP和OLTP的区别 2、OLAP分类 3、OLAP基本操作 4、OLAP选型 1、olap和oltp的区别 OLTPOLAP对象业务开发人员分析决策人员功能日常事务处理面向分析决策模型关系模型多维模型数据量几条或几十条记录>百万于万条记录操作类型增、删、查、改(CRUD)查询为主…

欧洲、美国、中国智慧城市的不同实践路径

来源:远望智库摘要:随着ICT、大数据、物联网等各类新兴技术的不断发展,智慧城市的运营和实践也不断趋于成熟。随着ICT、大数据、物联网等各类新兴技术的不断发展,智慧城市的运营和实践也不断趋于成熟。通过整理欧美各大典型智慧城…

使用IOUtils和FileUtils

文本输出应该比较常用,以前都是通过反复的创建InputStream, InputReader, OutputStream, OutputWriter等去输入输出文本,比较麻烦。Apache提供了一个commons-io.jar包,里面有很多IO相关的工具,比如输入输出文本等,着实…

一个sql生成hive日期维度表

目录 1、日期维度表 2、生成语句 3、用例 在进行日期处理时,有时候会很麻烦,于是小编开发了一张日期维表,供大家参考。 1、日期维度表 num字段名字段中文名描述数据类型1date日期日期 yyyMMdd格式bigint2week星期,数字型星期…

重磅推荐:机器人行业深度报告

来源:WPR随着中国人口红利消失,机器人不仅在制造业上正在替代工人,还将在军事、服务、娱乐等领域取代人类,“钢铁侠”已不仅仅存在于美国科幻电影中,而正走入我们的生活。本篇报告对机器人行业及龙头上市公司进行分析&…

Could not create directory F:\Qt\Test\Error in Util.asciify(build-First_02-Desktop_Qt_5_6_3_Min

第一次使用的Qt的时候出现了这种错误! 相信很多人在第一次使用的时候都会遇到这样的情况,果不其然,搜了一下很多的处理方法,其中有一种我感觉是最有效的,就是改一下他的生成路径就好了,因为这个错误的出现…

POJ 2392 Space Elevator

题目地址:http://poj.org/problem?id2392 题目大意:有一头奶牛要上太空,他有很多种石头,每种石头的高度是hi,但是不能放到ai之上的高度,并且这种石头有ci个 将这些石头叠加起来,问能够达到的最…

一篇文章搞懂数据仓库:总线架构、一致性维度、一致性事实

目录 1、概述 总线架构 一致性维度 一致性事实 2、总线架构demo 1、概述 在Kimball的维度建模的数据仓库中,关于多维体系结构(MD)有三个关键性概念:总线架构(Bus Architecture),一致性维…

路易斯·罗森伯格与「群体智能」

选自 | Gigaom编译 | 网易智能(smartman163)参与 | 李擎与谷歌、Facebook等开发“传统意义上的人工智能”的技术不同,在Unanimous A.I.,科学家们利用人工智能来放大群体的智慧,而不是使用人工智能来代替人类。他们没有…

数据结构和数据类型之间的关系

数据结构 数据元素 数据关系; 数据类型 数据结构 数据操作; 所以数据类型的范畴是大于数据结构的。 数据类型的范畴和类有点相似。其实类也是一种数据类型。 int,char基本类型 同样可以抽象成数据结构和数据元素的模型,只是这里的数据元素…