做网站规划,wordpress精美博客主题,wordpress自动升级失败,济宁网站建设培训班为什么VS生成动态库dll同时还会生成lib静态库 动态库与静态库#xff08;Windows环境下#xff09; 动态库和静态库都是一种可执行代码的二进制形式#xff0c;可以被操作系统载入内存执行。
静态库实际上是在链接时被链接到exe的#xff0c;编译后#xff0c;静态…为什么VS生成动态库dll同时还会生成lib静态库 动态库与静态库Windows环境下 动态库和静态库都是一种可执行代码的二进制形式可以被操作系统载入内存执行。
静态库实际上是在链接时被链接到exe的编译后静态库会嵌入到生成的exe文件中执行到静态库的内容时在exe的内存中就能获取到相关内容库本身不需要与可执行文件一起发行但是因为所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件生成的可执行文件较大。如果不同程序使用相同的静态库静态库会分别被嵌入不同程序造成空间浪费。并且如果静态库有任何更新所有使用它的应用程序都要重新编译。
动态库在程序编译时并不会链接到目标代码中而是在程序运行时才被载入并且不同的应用程序如果调用相同的库那么在内存里只需要有一份该共享库的实例规避了空间浪费问题同时态库在程序运行时才被载入也解决了静态库对程序的更新、部署和发布带来的麻烦可以做到局部更新而不用重新编译程序。
在VS生成动态库的项目中生成动态库dll同时还会生成lib文件 在VS生成动态库的项目中生成动态库dll同时还会生成lib文件这个lib文件并不是我们上面所说的静态库而是一个导入库。exe执行到动态库内容时需要跳到内存里的动态库区域然后执行相关内容这个动作就需要exe里面存在一个引路人来告诉exe这个函数是动态库的函数需要跳到其他内存区域执行而这个存在于exe的引路人就是动态库的.lib文件因为.lib文件会编译进exe文件里.dll文件不会被编译进exe里面动态库的.lib文件只提供链接到动态库的功能它本身不包含库的代码内容。 ———————————————— 版权声明本文为CSDN博主「binveni」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。 原文链接https://blog.csdn.net/binveni/article/details/132677651