提示:本文为学习内容,若有错误,请联系作者。
前言
过好当下每一天。
一、静态库
静态链接库(Statically-linked library),或称静态库,是一个外部函数与变量的集合体。静态库的文件内容,通常包含一堆程序员自定的变量与函数,其内容不像动态链接库那么复杂,在编译期间由编译器与连接器将它集成至应用程序内,并制作成目标文件以及可以独立运作的可执行文件。而这个可执行文件与编译可执行文件的程序,都是一种程序的静态创建(static build)。以过去的观点来说,库只能算是静态(static)类型。
二、静态库制作
1.新建项目
包含如下文件
2.编辑内容
.h文件
#ifndef MYLIB_H
#define MYLIB_H
class MyLib
{
public:
MyLib();
int Add_Num(int a,int b);
};
#endif // MYLIB_H
.cpp文件
#include "mylib.h"
MyLib::MyLib()
{
}
int MyLib::Add_Num(int a, int b)
{
return a+b;
}
编译执行出现如下对话框,关掉对话框即可
3.编译执行
分别在Debug和Release中生成libMyLib.a和mylib.o文件
将.o和.a文件分别复制到自己需要调用动态库的工程目录debug和release文件夹下。
静态库(static library):一组目标文件(.o/.obj文件)的集合,在Linux下或者是mingw环境下通过程序ar生成,意为archive,打包的意思。
Linux下静态库后缀为:.a,例如/usr/local/lib/libgsl.a
Windows下(mingw环境)静态库名称和Linux一致,如果是MSVC环境编译得到的静态库,后缀为.lib
动态库(dynamic library):使用静态库编译得到的可执行文件一般比较大,为此开发出了动态链接技术。
Linux下动态库后缀为:.so ,意为shared object
windows下(mingw)动态库后缀为.dll,意为dynamic linking library,MSVC环境编译得到动态库后缀亦为.dll
二、静态库调用
1.新建项目
2.添加静态库
点击项目右键->”添加库“->”外部库“
点击项目右键->”添加库“->”外部库“->“选择刚刚生成的静态库文件”
在项目.pro文件自动添加
3.编辑内容
添加.h文件
调用函数
编译执行结果
总结
善于总结,多进一步。