本教程介绍如何在Linux环境下利用Qt框架创建动态链接库(.so文件),并演示了如何编写、编译以及调用这些库中的函数与类。
创建.so:首先,在Qt Creator中新建一个项目(这里使用QT5.4.2),选择“Libraries -> C++ Library”,类型为Shared Library,并按照向导提示一路点击Next,根据需要选取模块,默认仅选择QtCore模块(如果要包含UI,则必须选择QtGui)。我将创建的项目命名为make_so。接着,在项目的plugintest_global.h文件中加入一行:#include ;在make_so.h中添加公共函数声明:int add(int a, int b);然后在cpp文件中实现该函数,即定义如下内容:
```c++
int Make_so::add(int a,int b)
```
构建项目后,会生成一系列文件包括 make_so.h、make_so_global.h、libmake_so.so、libmake_so.so.1、ibmake_so.so.1.0以及ibmake_so.so.1.0.0。
调用.so:新建一个名为test_so的工程,在该工程中右键选择“Add library”,然后选择外部库,点击Next并选取之前生成的共享库(即在项目目录下的 .so 文件)。接着按照向导提示完成设置。在Test_SO.cpp文件中包含make_so.h,并且需要调用外部函数时使用如下代码:
```c++
Make_so TestAdd;
int a = TestAdd.add(2,3);
QMessageBox::about(this,tr(提示信息),QString::number(a,10));
```
以上步骤完成了.so的创建及调用。