动态库在程序编译时并不会像静态链接库那样被连接到目标代码中,而是在程序运行是才被载入。不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例,规避了空间浪费问题。动态库在程序运行是才被载入,也解决了静态库对程序的更新、部署和发布页会带来麻烦。用户只需要更新动态库即可,增量更新。 动...
动态链接库文件的扩展名一般是dll,也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用。 动态链接是相对于静态链接而言的。所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。换句话说,函...
1.名字不一样,并且生成方式不一样,静态库是ar -rc,动态库是gcc -fpic -shared生成 2.编译运行的阶段不一样,静态库在编译是链接,动态库运行时链接(这里我不是很清楚) 3.方便性有差异,静态库的升级会导致程序整个需要重新编译浪费了时间,动态库的升级则不用重新编译整个程序 4.存放位置不一样,静态库在编译时...
总之,动态链接库和静态链接库在编译和运行时具有不同的特点和优势。选择何时使用动态链接库取决于具体应用需求和资源优化目标。理解两者之间的区别有助于更有效地利用资源,提高程序性能。
静态的是固定的,动态的是可以改变的。
二、动态链接库的优点 1. 共享代码、资源和数据 使用DLL的主要目的就是为了共享代码,DLL的代码可以被所有的Windows应用程序共享。 2. 隐藏实现的细节 DLL中的例程可以被应用程序访问,而应用程序并不知道这些例程的细节。 3. 拓展开发工具如Delphi的功能 由于DLL是与语言无关的,因此可以创建一...
我们知道静态链接库会占用很多不必要的资源,那我们就能想到动态链接库的第一个特点肯定就是节省资源。 动态库在程序编译时并不会像静态链接库那样被连接到目标代码中,而是在程序运行是才被载入。不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例,规避了空间浪费问题。动态库在程序运行是才被...