1 使用场景
最近做的项目,需要独立出一部分接口,供其他的开发者使用。项目本身是有界面的,即一边开发界面一边开发接口,界面也要使用这些接口。接口开发完成后,生成的.a文件,可以发送给其他开发者使用,这样他们就可以使用接口中的内容,而不能看到其中的代码实现。
下面,介绍一边开发接口 一边开发界面的 Qt Creator实现方式,以及其他开发者只拿到.a时的开发方式.
2 接口-界面同时开发
- 创建子目录项目
- 右键->新子项目,添加一个Qt Widgets Application,该项目是 界面项目。
- 右键->新子项目,添加一个C++ Library项目,该项目是 接口项目
这一步选择静态链接库
这里可以先改一下生成文件路径,方便一会找到.a文件
- 编写代码
要实现的效果:Form项目只有1个按钮,调用Core项目的fun函数,fun函数的功能为显示1个提示窗口。
1)Core项目,因为要用到窗口,所以要修改项目配置文件Core.pro
QT的位置改为QT += core widgets
Core项目
//core.h
#ifndef CORE_H
#define CORE_H
#include <QMessageBox>
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项目上,右键->添加库->内部库
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拷贝到项目中,右键->添加库->外部库,找到库文件,链接方式改为静态
3) 在 新项目的mainwindow.h中#include “core.h”
然后在.cpp中
void MainWindow::on_pushButton_clicked()
{
Core t;
t.fun();
}