创建动态库:
1. 在新建工程向导中选择"C++ Library",--> Shared library创建。以下以qtdll为示例名字。
2.自动生成的Qtdll类就是导出类,其成员函数参数支持STL
3.编译生成的so文件后面带着版本号,libqtdll.so.1.0.0
4. 编译,如果出现error(ignored)可忽略
测试动态库
1.新建一个Qt Console Application工程
2. 把libqtdll.so.1.0.0改名为libqtdll.so,右键工程名,Add library,选择External library,下一步,library file中选择libqtdll.so,include path中选择要导入的Qtdll.h文件所在路径,下方仅勾选linux,添加。
2.1 如果libqtdll.so还依赖了其它so文件,则需要用同样的方法把该so也添加到测试工程中。
3. 程序中使用Qtdll类
4.把libqtdll.so拷贝到测试程序目录下,改为libqtdll.so.1,否则运行程序时提示找不到
5.运行测试程序测试
注意:
>>网上有说通过手动修改.pro文件的方式添加库的,手动修改.pro文件会导致编译失败,切忌手动修改
>>添加sqlite3.so库的时候,只要按上述方式添加上就可以,不需要再把头文件添加到工程中,此时即可直接#include "sqlite3.h"并使用sqlite的库函数
>>每次修改并编译so后,要把libqtdll.so.1.0.0改为libqtdll.so,这样编译测试工程时才能链接到文件
>>运行测试程序时,要把libqtdll.so改为libqtdll.so.1