一. 静态库的生成
1. 测试目录: lib
2. 源码文件名: mywindow.h, mywindow.cpp
3. 编写项目文件: mywindow.pro
注意两点:
- TEMPLATE = lib
- CONFIG += staticlib
4. 生成Makefile:
- qmake mywindow.pro
5. 编译生成静态库libmywindow.a
- make
二. 静态库的使用
1. 测试目录: test
2. 将mywindow.h与libmywindow.a拷贝至test目录下
3. 编写main.cpp, 包含头文件mywindow.h, 并调用MyWindow类
4. 编写项目文件: test.pro
注意加上库路径与库文件名:
- LIBS += -L ./ -lmywindow
test.pro
6. 编译: make
7. 运行: ./test
三. 动态库的生成
动态库编译基本和静态库类似,需要将上述将要进行编译的项目文件.pro中下面这行去掉
- CONFIG += staticlib
按上述操作编译完后就可以得到以lib开头并且.so* 结尾动态库文件,一般有多个
四. 动态库的应用
编译完成后,可以将目录下lib开头并且.so* 结尾的文件拷贝到需要用的地方 其他操作和静态库应用一样。
五. pri文件编写
pri文件一般用于库对外提供的方便应用程序调用该库的文件
pri文件中一般添加库提供的头文件的存放位置和调用该库的语句,以及一些依赖关系
一般有以下几个部分:
INCLUDEPATH + = \
PWD/../include/包含的路径(不用
PWD,不能显示目录结构 提示找不到文件)
这个选项可以指定我们#include语句要包含头文件的目录,如果你有其它的不在当前目录的头文件需要包含进来,并又不想在自己的源文件中使用绝对路径或相对路径来包含头文件,那么我就可以在这里把这个头文件所在的路径包含进来
HEADERS + = \
$$PWD/.... 包含的头文件
SOURCES + = \
$$PWD/.... 包含的.cpp文件
include(路径) 包含的其他pri文件(一般用于依赖库的添加)
//设置发布内容及安装目录
sources.file + = $$HEADERS
sources.file - = *.h(剔除不要发布的头文件)
sources.path =../../include/ (文件存放目录)
target.path = ../../lib/ (库文件存放目录)
INSTALLS + = target sources 自动安装