一. 静态库的生成

1. 测试目录: lib

2. 源码文件名: mywindow.h, mywindow.cpp

3. 编写项目文件: mywindow.pro

注意两点:


  1. TEMPLATE = lib 
  2. CONFIG   += staticlib 


4. 生成Makefile:


  1. qmake mywindow.pro


5. 编译生成静态库libmywindow.a


  1. make 


二. 静态库的使用

1. 测试目录: test

2. 将mywindow.h与libmywindow.a拷贝至test目录下

3. 编写main.cpp, 包含头文件mywindow.h, 并调用MyWindow类

4. 编写项目文件: test.pro

注意加上库路径与库文件名:


  1. LIBS += -L ./ -lmywindow 


test.pro

6. 编译: make

7. 运行: ./test

三. 动态库的生成

动态库编译基本和静态库类似,需要将上述将要进行编译的项目文件.pro中下面这行去掉

  1. 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    自动安装