/*今天学习了下动态链接库这方面的内容,为了梳理下知识以及以后复习使用,特做如下简单总结:*/
1、静态库
函数和数据被编译进一个二进制文件(扩展名位 .LIB)。在使用静态库的情况下,在编译器链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其他模块组合起来创建最终的可执行文件(.EXE)。发布产品时,不需要发布使用的静态库。
1.1 静态库的创建
A:File->New->Projects->Win32 Static Library (这里我创建的工程名字为libTest)->Finish
B:File->New->File->C/C++ Header File (lib.h)
///头文件对add函数进行声明:
#ifndef LIB_H
#define LIB_H
extern "C" int add(int a,int b);
#endif
C:File->New->File->C++ Source File (lib.cpp)
////定义add
#include "lib.h"
int add(int a,int b)
{
return a+b;
}
D:编译后,打开程序文件夹。可以在debug文件看到有个libTest.lib文件。这就是生成的静态库文件
1.2静态库的链接
A:重新打开一个工程
File->New->Projects->Win32 Console Application
B:创建一个源文件(libCall.cpp)
这时我们将1.1节中生成的libTest.lib文件和lib.h头文件copy到libCall文件夹中
在源文件中我们将调用lib文件中add(int a, int b)这个函数来完成简单的加法运算。
编程如下
/// libCall.cpp
#include <iostream.h>
#include "lib.h" ///包含头文件
#pragma comment(lib,"libTest.lib") ///链接静态库
void main()
{
cout<<add(2,3)<<endl;
return ;
}
C:编译,运行。正确无误。。。。。。