静止的(static)和动态链接(dynamic linking)的区别

静态链接和动态链接的主要区别在于,静态链接在编译的最后一步将程序中使用的所有库模块复制到最终的可执行文件中,而在动态链接中,当可执行文件和库都放在内存中时,链接发生在运行时。...

静态链接和动态链接的主要区别在于,静态链接在编译的最后一步将程序中使用的所有库模块复制到最终的可执行文件中,而在动态链接中,当可执行文件和库都放在内存中时,链接发生在运行时。

一般来说,计算机程序是程序设计语言中的一系列步骤,用于指示计算机或CPU执行某项任务。即使程序员懂这个程序,计算机也不懂。因此,有必要将源代码转换为机器代码。此外,此程序可能需要其他程序或库。在这些情况下,有必要将这些程序或库与此程序一起执行。因此,链接是将外部程序与程序员的程序相结合以成功执行它的过程。总的来说,有静态链接和动态链接两种链接机制。

覆盖的关键领域

1.什么是静态链接-定义,功能2.什么是动态链接-定义,功能3.静态链接和动态链接的区别-关键区别的比较

关键术语

动态链接,库,链接器,静态链接

静止的(static)和动态链接(dynamic linking)的区别

什么是静态链接(static linking)?

静态链接将程序所需的所有库复制到最终的可执行文件中。链接器执行此任务,这是编译的最后一步。链接器将相关库与程序代码结合起来以解析外部引用。最后,链接器生成适合装入内存的可执行文件。最终的统计链接文件包含调用程序和被调用程序。通常,这些文件很大,因为它们与其他文件相连。

静止的(static)和动态链接(dynamic linking)的区别Assume that there are some changes in the external programs. In that case, it is necessary to recompile and re-link again. Otherwise, the existing executable file does not reflect these changes. Furthermore, in statistical linking, all the modules and libraries are available as a single executable module. Therefore, this linking is faster and does not cause compatibility issues.

什么是动态链接(dynamic linking)?

在动态链接中,外部库/共享库的名称被复制到最终的可执行文件中;因此,当可执行文件和库加载到内存时,真正的链接发生在运行时。操作系统执行动态链接。通常,内存中只有一个共享库的副本。因此,可执行文件的大小较小。可以更新和重新编译外部库。此外,如果共享库代码已经在内存中可用,则加载时间将更短。

通常,在动态链接中,最好有一个兼容的库。如果库中有修改,应用程序必须找到方法使其与库的新版本兼容。此外,删除库可能导致程序无法继续工作。

静止的(static)和动态链接(dynamic linking)的区别

定义

静态链接是将程序中使用的所有库模块复制到最终可执行映像中的过程。相反,动态链接是将外部共享库加载到程序中,然后将这些共享库动态绑定到程序的过程。因此,这是静态链接和动态链接之间的主要区别。

发生

此外,静态链接是编译的最后一步,而动态链接发生在运行时。

文件大小

虽然统计链接的文件较大,但动态链接的文件较小。

装载时间

此外,静态链接需要固定的加载时间,而动态链接需要较少的加载时间。因此,这是静态链接和动态链接之间的另一个区别。

兼容性

此外,静态链接没有兼容性问题。另一方面,动态链接也会有兼容性问题。

结论

总之,静态链接和动态链接是两种链接机制。静态链接和动态链接的主要区别在于,静态链接在编译的最后一步将程序中使用的所有库模块复制到最终的可执行文件中,而在动态链接中,当可执行文件和库都放在内存中时,链接发生在运行时。

引用

1,“动态链接器”,维基百科,维基媒体基金会,25月2019日,可在这里。

  • 发表于 2021-07-02 00:20
  • 阅读 ( 722 )
  • 分类:IT

你可能感兴趣的文章

静止的(static)和动态内存分配(dynamic memory allocation)的区别

...内存分配有效。一个缺点是实现动态内存分配很复杂。 静止的(static)和动态内存分配(dynamic memory allocation)的共同点 两者都是内存分配机制。 两者都应该由程序员手动实现。 静止的(static)和动态内存分配(dynamic memory allocation)的...

  • 发布于 2020-10-11 12:09
  • 阅读 ( 1009 )

静态绑定(static binding)和动态绑定(dynamic binding)的区别

...静态绑定与动态绑定的表格形式 6. 摘要 什么是静态绑定(static binding)? 绑定是方法调用和方法定义之间的链接。 图01:静态绑定和动态绑定 参考下面用Java编写的程序。 公共A级{ 公共无效方法1(){ System.out.println(“方法1”)...

  • 发布于 2020-10-19 17:49
  • 阅读 ( 415 )

静止的(static)和动态特性(dynamic characters)的区别

...更受读者的喜爱。这提供了对这两类字符的基本理解。 静止的(static)和动态特性(dynamic characters)的区别 •静态人物在整个小说中没有发生任何变化,从头到尾都保持不变。这些大多是故事中的小人物。 •另一方面,动态角色在...

  • 发布于 2020-10-24 16:55
  • 阅读 ( 784 )

静止的(static)和动态路由(dynamic routing)的区别

静态与动态路由 静态路由和动态路由的区别在于路由条目进入系统的方式。计算机网络中的路由是指在计算机网络中正确地转发数据包,使数据包最终到达正确的目的地的过程。路由主要有静态路由和动态路由两种类型。在...

  • 发布于 2020-10-29 09:42
  • 阅读 ( 438 )

动态(dynamic)和静态ip(static ip)的区别

动态IP是指每次连接到网络时都会发生变化的IP,而静态IP是指无论连接多少次或从网络断开多少次都保持不变的IP。您是否有静态或动态IP地址取决于所述网络的管理员。每次连接到网络时,动态IP都会发生变化;这是一种在连接...

  • 发布于 2021-06-22 11:51
  • 阅读 ( 387 )

动态拉伸(dynamic stretching)和静态拉伸(static stretching)的区别

...群用于针对关键的表现区域。   什么是静态拉伸练习(static stretch exercises)? 静态拉伸练习是一种更慢、更受控制的运动形式。静态练习是用来保持一个姿势在一个伸展的立场,并适合后锻炼阶段。它们有助于冷却过程,因为...

  • 发布于 2021-06-26 00:09
  • 阅读 ( 570 )

静止的(static)和动态平衡(dynamic equilibrium)的区别

...然而,这种情况在机械意义上比化学意义上更有意义。 静止的(static)和动态平衡(dynamic equilibrium)的区别 定义 动态平衡是反应物转化为产物,产物以相等且恒定的速率转化为反应物的平衡。 静态平衡是当反应中的所有粒子都处于...

  • 发布于 2021-06-27 09:49
  • 阅读 ( 565 )

静止的(static)和动态网站(dynamic website)的区别

...站。电子商务网站和社交媒体网站是***站的两个例子。 静止的(static)和***站(dynamic website)的区别 定义 静态网站是一个网站,它的网页是用HTML编码的,每个网页的内容都是固定的,除非经过编辑和重新发布,否则不会改变。***站...

  • 发布于 2021-07-01 01:36
  • 阅读 ( 631 )

静止的(static)和动态ip(dynamic ip address)的区别

静态IP地址和动态IP地址的主要区别在于,静态IP地址是由网络管理员手动分配给设备的固定地址,而动态IP地址是由DHCP服务器自动分配给设备的地址。 计算机网络由各种设备组成,如台式机、笔记本电脑、服务器、路由器和交...

  • 发布于 2021-07-01 03:17
  • 阅读 ( 809 )

静止的(static)和动态哈希(dynamic hashing)的区别

静态哈希和动态哈希的主要区别在于,在静态哈希中,生成的数据桶地址总是相同的,而在动态哈希中,数据桶根据记录的增减而增减。 要在大型数据库中查找数据,不可能搜索所有索引。散列提供了解决这个问题的另一种方...

  • 发布于 2021-07-01 07:30
  • 阅读 ( 332 )
瑞贝啊
瑞贝啊

0 篇文章

相关推荐