QT 静态库和动态库的使用方法
背景知识:程序在编译成可执行文件时,会有四步过程:
1预处理(头文件和宏定义) g++ -E 1.cpp -o 1.i
2编译 将c代码编译成汇编代码 g++ -S 1.cpp -o 1.s
3汇编 将汇编代码编译成二进制代码 g++ -c 1.cpp -o 1.o
4链接 链接我们用到的函数代码 还有地址(包含静态库而动态库是在运行时链接) gcc 1.c
静态库:在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;
动态库:在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的副本,因此节省了很多内存。
一 Qt创建静态库:
1.点击New Project ->Library ->C++库 点击choose
2.在类型选择静态链接库,点击下一步。
3.然后一直点击下一步。
代码如下:
Lib.h
#include “lib.h”
Lib::Lib()
{
}
long Lib::add(int a, int b)
{
return a+b;
}
Lib.cpp
#include “lib.h”
Lib::Lib()
{
}
long Lib::add(int a, int b)
{
return a+b;
}
编译后会生成Lib.o和Lib.a文件。
Lib.o:是我们生成的二进制过程文件。
Lib.a:这就是我们的静态库文件。
二:Qt静态库调用
新建widget工程
pro:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = test
TEMPLATE = app
D