静态链接与动态链接

静态链接是指把要调用的函数或者过程直接链接到可执行文件中,成为可执行文件的一部分。也就是函数和过程的代码就在程序的可执行文件中,可执行文件包含了运行时所需的全部代码。
动态链接是指所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息,往往是一些重定位信息。仅当应用程序被装入内存开始运行时,在操作系统的管理下,应用程序与相应的动态链接库(dynamic link library,dll)之间建立链接关系,当要执行所调用dll中的函数时,根据链接产生的重定位信息,操作系统才转去执行dll中相应的函数代码。
静态链接的优点是执行程序能够在其他同类操作系统的机器上直接运行。缺点是当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了内存资源。动态链接的执行程序则不能够在其他同类操作系统的机器上直接运行,除非把该exe文件所需的dll文件都一起拷贝过去,或者对方机器上也有所需的相同版本的dll文件,否则是不能保证正常运行的。
静态链接库就是使用的.lib文件,库中的代码最后需要链接到可执行文件中去,所以静态链接的可执行文件一般比较大一些。
动态链接库是一个包含可由多个程序同时使用的代码和数据的库。可执行程序(如.exe文件或.dll文件)在运行时加载动态链接库,即将程序所需的动态链接库映射到调用进程的地址空间。
静态链接库和动态链接库的相同点是它们都实现了代码的共享。不同点是静态链接库lib中的代码被包含在调用的exe文件中,该lib中不能再包含其他动态链接库或者静态链接库了。动态链接库dll可以被调用的exe动态地“引用”和“卸载”,该dll中可以包含其他动态链接库或者静态链接库。

转载于:https://www.cnblogs.com/xidian2014/p/8615718.html

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

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

相关文章

OpenCV 编程简介(矩阵/图像/视频的基本读写操作)

PS. 由于csdn博客文章长度有限制,本文有部分内容被截掉了。 在OpenCV中文网站的wiki上有可读性更好、并且是完整的版本,欢迎浏览。 OpenCV Wiki :《OpenCV 编程简介(矩阵/图像/视频的基本读写操作)》 Introduction to…

再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化

原文:再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化继上篇文章《绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来》发布后在博客园首页展示得到了挺多的阅读量,我这篇文章就是对上篇文章的千万…

同步机制遵循的原则

进程在并发执行时为了保证结果的可再现性,各进程执行序列必须加以限制以保证互斥地使用临界资源,相互合作完成任务。多个相关进程在执行次序上的协调称为进程同步。用于保证多个进程在执行次序上的协调关系的相应机制称为进程同步机制。 所有的进程同步机…

wps html编辑表格,WPS 2017个人版演示word使用技巧(wps2017表格使用技巧)

wps2017是一款非常深受用户喜爱的办公软件。在2017这个新的版本中,依旧继承了它之前兼容免费、体积小、多种界面切换、云办公等众多优秀的功能特点,下面小编就来教大家wps2017的使用方式使用技巧:一、wps2017个人版word使用技巧技巧一&#x…

ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法...

在ubuntu系统的termial下,用apt-get install 安装软件的时候,如果在未完成下载的情况下将terminal close。此时 apt-get进程可能没有结束。结果,如果再次运行apt-get install 命令安装如今,可能会发生下面的提示:无法获…

es Update API

2019独角兽企业重金招聘Python工程师标准>>> es Update API 博客分类: 搜索引擎,爬虫 The update API allows to update a document based on a script provided. The operation gets the document (collocated with the shard) from the ind…

聪明人,容易不务实

聪明人拥有很多优势。首先,聪明人的逻辑强、思路灵活,理解事物很快,因而经常很有创意。聪明人本身,也因为经常感觉到自己「快速理解、时有创意」的特质,认为没有什么事情难得倒他。渐渐的,在看待任何事物时…

Linux 线程占用CPU过高定位分析

今天朋友问我一个Linux程序CPU占用涨停了&#xff0c;该如何分析&#xff0c; CPU占用过高&#xff0c;模拟CPU占用过高的情况 先上一段代码&#xff1a; 1 #include <iostream>2 #include <thread>3 #include <vector>4 5 6 int main(int argc, char **argv…

计算机二级常备知识,2020年计算机二级Office考试必备题库资料!

考试资料在手&#xff0c;考试不用愁&#xff01;领报名界面显示计算机二级Office通过率仅21.07%&#xff0c;很多人认为是既费脑子又费时间的考试&#xff0c;可能是方法不对&#xff0c;导致花了很多时间还是考不过&#xff0c;刚刚收到3月考的二级证书啦&#xff0c;马上还有…

MR作业的提交监控、输入输出控制及特性使用

2019独角兽企业重金招聘Python工程师标准>>> MR作业的提交监控、输入输出控制及特性使用 博客分类&#xff1a; hadoop 提交作业并监控 JobClient是用户作业与JobTracker交互的主要接口&#xff0c;它提供了提交作业&#xff0c;跟踪作业进度、访问任务报告及logs、…

ACK和NAK

ACK 英文缩写: ACKnowledge Character在数据通信传输中&#xff0c;接收站发给发送站的一种传输控制字符。它表示确认发来的数据已经接受无误。 NAK 英文缩写: Negative Acknowledgment是否定应答或者非应答的缩写。它是一个用于数字通信中确认数据受到但是有小错误的信号。

http协议与web本质

当你在浏览器地址栏敲入“http://www.csdn.net/”&#xff0c;然后猛按回车&#xff0c;呈现在你面前的&#xff0c;将是csdn的首页了&#xff08;这真是废话&#xff0c;你会认为这是理所当然的&#xff09;。作为一个开发者&#xff0c;尤其是web开发人员&#xff0c;我想你有…

计算机科学与技术考研课程安排,计算机科学与技术(0812)硕士研究生培养方案(一)...

一、培养目标本专业培养掌握马克思主义基本原理、计算机科学与技术基础理论和系统知识&#xff0c;深入了解国内外计算机科学与技术领域新技术和新动向&#xff0c;具备熟练的编程、测试能力&#xff0c;熟练掌握1门外语并具有较强创新和实践能力&#xff0c;能够在计算机科学与…

Docker storage driver 选择

2019独角兽企业重金招聘Python工程师标准>>> Docker storage driver 选择 博客分类&#xff1a; docker 本文的目的是说明&#xff0c;如何在生产环境中选择Docker 的storage driver。以及对应Linux发行版本下Docker storage driver的配置方法。主要参考&#xff0c…

临界资源和临界区

临界资源&#xff1a; 临界资源是一次仅允许一个进程使用的共享资源&#xff0c;各进程采取互斥的方式实现共享的资源。 属于临界资源的硬件有&#xff0c;打印机&#xff0c;磁带机等&#xff1b;软件有消息队列&#xff0c;变量&#xff0c;数组&#xff0c;缓…

手机网站制作html5,【怎么样制作手机网站】如何使用dreamweavercs6建立手机网站?织梦手机WAP浏览模块如何制作手机网站?如何制作html5手机页面?...

【怎么样制作手机网站】如何使用dreamweavercs6建立手机网站?织梦手机WAP浏览模块如何制作手机网站?如何制作html5手机页面?下面就和小编一起来看看吧!如何使用dreamweavercs6建立手机网站?制作步骤如下:1。打开DreamweaverCS6软件&#xff0c;可以在DreamweaverCS6软件的开…

Docker查看关联容器的卷宗在本机的存储位置

docker inspect -f {{.Volumes}} volume1转载于:https://www.cnblogs.com/toSeeMyDream/p/8623430.html

《那些年啊,那些事——一个程序员的奋斗史》转载1到7

段伏枥&#xff0c;一个瘦小&#xff0c;矮小&#xff0c;根本和“帅”这个字粘不上任何关系的普通人。名字的来源在于其多读了几年书的老爹&#xff0c;总抱着有一天要出书出名乃至于名流千古的美好理想&#xff0c;但可惜现实总是给予他无情的而又现实的打击&#xff0c;于是…

如果在docker中部署tomcat,并且部署java应用程序

2019独角兽企业重金招聘Python工程师标准>>> 如果在docker中部署tomcat,并且部署java应用程序 博客分类&#xff1a; docker 1、先说如何在docker中部署tomcat 第一步&#xff1a;root用户登录在系统根目录下创建文件夹tomcat7,命令如&#xff1a;mkdir tomcat7&…