Qt动态库和静态库的创建和使用
程序员文章站
2022-07-14 09:31:01
...
动态库(共享库)的创建
在Qt Creator中新建项目,选择Library
点击“Choose”进入下一步
选择创建库的类型:共享库
选择Kit套件
选择需要的模块
配置工程路径、名字等
Qt Creator自动创建的文件
我配置的动态库名字为:Share
pro文件内容
QT -= gui #在选择需要的模块时,我只选用了QtCore,没有使用QtGui
TARGET = Share #我配置的动态库的名字:Share
TEMPLATE = lib #生成库时该字段为lib;生成执行文件时为:app
DEFINES += SHARE_LIBRARY #将SHARE_LIBRARY添加为编译时的预处理器宏,在share_global.h中使用
SOURCES += Share.cpp
HEADERS += Share.h\ #使用动态库时需要这两个头文件
share_global.h
unix {
target.path = /usr/lib
INSTALLS += target
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
share_global.h分析
#ifndef SHARE_GLOBAL_H
#define SHARE_GLOBAL_H
#include <QtCore/qglobal.h>
//使用了pro中DEFINES += SHARE_LIBRARY,选用Q_DECL_EXPORT
//Q_DECL_EXPORT:必须添加到符号声明中(共享库项目)
//Q_DECL_IMPORT:必须添加到符号声明中(使用共享库的客户项目)
//不知道这两个有什么区别???
#if defined(SHARE_LIBRARY)
# define SHARESHARED_EXPORT Q_DECL_EXPORT
#else
# define SHARESHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // SHARE_GLOBAL_H
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
动态库(共享库)的使用
添加动态库的头文件
我定义的头文件为Share.h、share_global.h,将这两个头文件拷贝到使用库的工程目录中,并添加到工程中
添加库路径
在pro中添加动态库的路径
LIBS += “E:/…/libshare.a”
部署动态库
因为是动态库,没有编译到可执行文件中,所以需要将动态库,部署到可执行文件的能够使用的库路径中,一般放到可执行文件同目录下。
静态库的创建
在Qt Creator中新建项目,选择Library
点击“Choose”进入下一步
选择创建库的类型:静态链接库
其他步骤与动态库创建相同
Qt Creator自动创建的文件
我创建的静态链接库名字为:Static
pro文件内容
QT -= gui #在选择需要的模块时,我只选用了QtCore,没有使用QtGui
TARGET = static #我配置的静态库名字:static
TEMPLATE = lib #生成库时该字段为lib;生成执行文件时为:app
CONFIG += staticlib #编译选项,使用静态库staticlib,默认是动态库
SOURCES += Static.cpp
HEADERS += Static.h #使用静态库时,需要该头文件
unix {
target.path = /usr/lib
INSTALLS += target
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
静态库的使用
添加头文件
我定义的头文件为Static.h,将这个头文件拷贝到使用库的工程目录中,并添加到工程中
添加库路径
在pro中添加动态库的路径
LIBS += “E:/…/libstatic.a”
不用部署
静态库时在编译时,编译进可执行文件中,不需要部署。
上一篇: seo将会涉及的知识领域
下一篇: ES5之Object.seal