Qt静态链接库的使用

1 使用场景

最近做的项目,需要独立出一部分接口,供其他的开发者使用。项目本身是有界面的,即一边开发界面一边开发接口,界面也要使用这些接口。接口开发完成后,生成的.a文件,可以发送给其他开发者使用,这样他们就可以使用接口中的内容,而不能看到其中的代码实现。
下面,介绍一边开发接口 一边开发界面的 Qt Creator实现方式,以及其他开发者只拿到.a时的开发方式.

2 接口-界面同时开发

  1. 创建子目录项目
    Qt静态链接库的使用_第1张图片
  2. 右键->新子项目,添加一个Qt Widgets Application,该项目是 界面项目。
    Qt静态链接库的使用_第2张图片
  3. 右键->新子项目,添加一个C++ Library项目,该项目是 接口项目
    Qt静态链接库的使用_第3张图片
    这一步选择静态链接库
    Qt静态链接库的使用_第4张图片
    这里可以先改一下生成文件路径,方便一会找到.a文件
    Qt静态链接库的使用_第5张图片
  4. 编写代码
    要实现的效果:Form项目只有1个按钮,调用Core项目的fun函数,fun函数的功能为显示1个提示窗口。
    1)Core项目,因为要用到窗口,所以要修改项目配置文件Core.pro
    QT的位置改为QT += core widgets
    Core项目
//core.h

#ifndef CORE_H
#define CORE_H

#include 

class Core
{
public:
    Core();
    void fun();
private:
    QString text = "core.a中的函数fun";
};

#endif // CORE_H

//core.cpp
#include "core.h"

Core::Core()
{
}

void Core::fun()
{
    QMessageBox::information(nullptr, "提示", text);
}

2)在Form项目上,右键->添加库->内部库
Qt静态链接库的使用_第6张图片
Qt静态链接库的使用_第7张图片
3) Form代码
在MainWindow.h中 添加
#include “core.h”
然后在MainWindow.cpp中使用即可

void MainWindow::on_pushButton_clicked()
{
    Core t;
    t.fun();
}

3 直接使用.a进行开发

1)在上面项目的bin/Core/release或debug目录下找到libCore.a(推荐release)以及你想要让其使用的接口的.h(可以只保留所有的public变量和方法),发送给其他开发者
2)新建一个新的Qt界面项目,将libCore.a拷贝到项目中,右键->添加库->外部库,找到库文件,链接方式改为静态Qt静态链接库的使用_第8张图片
3) 在 新项目的mainwindow.h中#include “core.h”
然后在.cpp中

void MainWindow::on_pushButton_clicked()
{
    Core t;
    t.fun();
}

你可能感兴趣的:(QT)