静态链接库
在windows的发展过程中在经历了“无库-静态链接库-动态链接库”的时代。
静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。
新建一个 static library 工程 ,并新建 lib.h和 lib.cpp 两个文件,lib.h 和 lib.cpp的源代码如下:
1 #include <stdio.h> 2 #include "..\lib.h" 3 #pragma comment( lib, "..\\debug\\libTest.lib" ) //指定与静态库一起连接 4 int main(int argc, char* argv[]) 5 { 6 printf( "2 + 3 = %d", add( 2, 3 ) ); 7 }
编译这个工程就得到了一个.lib 文件,这个文件就是一个函数库,它提供了 add 的功能。将头文件和.lib 文件提交给用户后,用户就可以直接使用其中的 add 函数了。