静态链接和动态链接之间的区别

问题描述:

静态链接和动态链接之间的区别是什么?静态链接和动态链接之间的区别

+0

@Andrey:这不是一个确切的副本。有三种可能性:静态链接,加载时动态链接和运行时动态链接。另一个问题是询问第二个和第三个之间的区别,而这是在讨论第一个和第二个和第三个之间的区别。 – 2012-01-14 18:29:36

静态链接在'编译时间'由一个称为链接器的工具完成。动态链接在运行时由操作系统完成。

+0

[静态和动态链接的优点和缺点] – Aneesh 2012-10-17 19:37:50

+2

@Aneesh找不到页面:( – 2013-05-29 17:25:03

在静态链接中,外部库文件中定义的函数和变量在可执行文件中链接。这意味着编译/链接时代码实际上与您的代码链接。

通过动态链接在软件中使用的外部函数不会与您的可执行文件链接。相反,它们驻留在仅由您的软件引用的外部库文件中。即:编译器/链接器指示软件在何处查找使用的功能。

在Windows平台上,您甚至可以在运行时显式加载DLL文件并挂接DLL中包含的函数。

在静态链接库链接在编译时间,但代码尺寸更当你这个静态链接,当你只有一个或两个程序,那么你使用静态链接

在运行时链接的动态链接库(或)执行时间,但代码大小较小,当你有更多的程序,然后使用动态链接。

+0

'执行有什么区别时间和运行时间? – erbdex 2014-01-16 07:20:40

静态链接增加程序的文件大小,并且如果系统上运行其他应用程序,它可能会增加内存中的代码大小...另一方面,动态链接的程序占用更少的空间和更少的虚拟内存