调用静态库lib,静态链接库与动态链接库区别
静态库3354的函数和数据编译成二进制文件(扩展名为。lib)。在使用静态库的情况下,当编译链接的可执行文件时,连接器从库中复制这些函数和数据,并将它们与应用程序的其他模块组合以创建最终的可执行文件(。exe)文件。发布产品的时候,只需要发布这个可执行文件,不需要发布使用过的静态库。
动态库3354在使用动态库的时候,经常会提供两个文件:一个导入库(。lib)文件和一个DLL(.dll)文件。虽然导入库的扩展名也是。lib ,动态库的导入库文件和静态库文件有本质区别。对于dll,编译器导入库文件(。lib)包含DLL导出的函数和变量的符号名,而。dll文件包含DLL的实际函数和数据。在使用动态库的情况下,只需要连接DLL的导入库文件,DLL中的函数代码和数据不会复制到可执行文件中。只有在可执行程序运行时,才能加载所需的DLL,而此时的DLL,在产品发布时,除了可执行文件外,程序要调用的动态连接库也被发布。
参考号:《VC++深入解析》