库分为静态链接库和动态链接库;它们都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的exe文件中;但是若使用DLL,该DLL不必被包含在最终的exe程序中,exe文件执行时,可以“动态”的引用和卸载这个与exe独立的DLL文件。静态链接库与动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态链接库或静态链接库。
这篇博文主要讲解静态链接库的编写,由于静态链接库的编写比较简单,所以篇幅比较短,学习静态链接库的编写是为了动态链接库的编写打下基础。
首先,VS2010建立一个C++工程:
添加Lib.h和Lib.cpp文件;
#ifndef LIB_H #define LIB_H int add(int a, int b); #endif
#include "Lib.h" int add(int a, int b) { return a + b; }
然后,Build项目;此时,在Debug目录下回生成一个Lib.lib文件;
在新建一个项目,用来测试生成的lib文件;
将Lib.h和Lib.lib文件拷贝到新项目的路径下。
测试代码如下:
#include <iostream> #include "Lib.h" using namespace std; #pragma comment(lib, "Lib.lib") int main() { cout<<add(2, 3)<<endl; return 0; }
运行程序;至此,一个完成的lib完成。
技术交流群:107133067