首页 > 代码库 > C/C++静态库创建、导出和使用(图文)
C/C++静态库创建、导出和使用(图文)
一 Windows库
1引入库的原因:
a.项目的复杂程度大
b.提高代码的利益利用率
2库的分类
2.1静态库: *.lib,不能被加载的程序,可以理解为目标程序的归档。
2.2动态库:*.dll,可以被应用程序加载的程序。
二 静态库
1静态库的特点
1.1目标程序的归档
1.2静态库代码会被嵌入到程序当中
1.3执行时不需要静态库存在
举例如下:(静态库中代码被嵌于调用printf的代码中)
程序 静态库
printf() printf(){………}
2 C语言静态库
2.1创建静态库(创建win32静态库项目,使用*.c文件.(使用C编译器))
2.2添加静态库函数
直接添加函数,之后编译即可生成*.lib文件。
2.3在程序中将静态库导入
(1)使用语句:#pragmacomment(lib,"../lib/WinClib.lib")添加静态库
(2)可在项目属性->链接器->输入->附加依赖项中添加静态库
2.4使用静态库提供的函数(在C语言程序中,直接使用函数即可)
举例如下:
extern"C" intC_Add(int nleft, intnright);
extern"C" {
intC_Add(int nleft, intnright)
}
2.5 创建、使用C语言静态库。举例如下(VS2013):
2.5.1 创建静态库
(1) 创建静态库项目
(2) 创建.c文件
(3) 修改输出*.lib文件目录和文件名(也可不修改,使用时将*.lib文件拷贝到相应目录下即可)
(3) 添加函数,并调试成功
至此静态库创建完毕
2.5.2 创建新工程,调用静态库
(1)创建调用静态库工程
(2)添加.c文件
(3)添加静态库(也可在项目属性中设置,这里不做说明)
(4) 调用成功
3 C++语言静态库
3.1创建静态库(创建Win32静态库项目,使用*.cpp文件(使用C++编译器)。)
3.2添加静态库函数
直接添加函数,之后编译即可生成*.lib文件。
3.3导入静态库
(1)使用#pragmacomment(lib,"../lib/Win_Cpp_lib.lib")添加静态库
(2)可在项目属性->链接器->输入->附加依赖项中添加静态库
3.4定义库函数原型
int Cpp_Add(int nleft,int nright);
3.5使用库函数
3.6静态库的创建、使用等具体操作
其创建、使用与C语言静态库有两点差别,其余完全跟 2.5部分相同。
(1)使用#pragma …导入静态库之后,需要再一次定义库函数原型(在调用之前定义即可)
(2)创建.cpp文件编写库函数而不是.c文件(即使用C++编译器而不是C编译器)
3.7注意:
如果在Cpp文件使用C语言静态库定义的静态库函数原型,也需要再一次在调用C静态库函数之前再次定义要调用函数的原型,定义原型与定义C++静态库函数原型不同,需增加 extern “C”.
C/C++静态库创建、导出和使用(图文)