使用动态链接为什么还需要静态库lib文件
在Windows上使用动态链接时,不光需要头文件 .dll
文件 还需要一个.lib
文件。
不是动态链接吗?为什么还需要静态库.lib
文件?
实际上,这个.lib
文件并不是静态库,而是 导入库 文件,只是使用和静态库相同的扩展名而已。
静态库本身就包含了实际执行代码、符号表等等,所以只要头文件就可以了。
而动态链接而言,其实际的执行代码位于动态库中,需要导入库提供地址符号表等信息,确保程序找到对应函数的一些基本地址信息。
可以看到两个.lib
文件大小差距很大。