在Windows平台上,动态库和静态库都是用于组织和共享代码的方式。这些库文件的扩展名和用途有一些区别。
静态库(Static Library):
.lib
动态库(Dynamic Link Library):
.dll
静态库:
.lib
扩展名。例如:mylib.lib
.lib
文件。动态库:
.dll
扩展名。例如:mylib.dll
.lib
文件(这是用于链接动态库的导入库)。.dll
文件放在程序可执行文件所在的目录,或者添加到系统路径中。导入库是什么:
.lib
文件通常被称为导入库。导入库实际上是一种特殊的静态库,包含了调用动态库函数的信息。导入库的生成:
.lib
的导入库。编写代码并编译成目标文件(.obj
):
cl /c mylib.cpp
将目标文件打包成静态库:
lib /OUT:mylib.lib mylib.obj
在项目中链接静态库:
mylib.lib
添加到项目属性的链接器设置中。编写代码并编译成目标文件(.obj
):
cl /c mylib.cpp
编写代码并编译成动态库(.dll
):
cl /LD mylib.obj
在项目中链接动态库:
mylib.lib
(导入库)添加到项目属性的链接器设置中。mylib.dll
放置在可执行文件所在目录或者添加到系统路径中。.lib
扩展名,动态库使用 .dll
扩展名。.lib
文件)提供函数信息。上文是简单的介绍,实际使用过程中可能还涉及到一些特殊情况和编译器/工具的不同行为。