一、生成静态库文件
新建Qt项目,选择“Library”“C++ Library”
更改项目名称和位置
选择静态库
选择编译器
项目创建完的文件树
更改.h代码
#ifndef MYLIB_H
#define MYLIB_H
class MyLib
{
public:
MyLib();
int addFun(int value1, int value2);
int subFun(int value1, int value2);
};
#endif // MYLIB_H
更改.cpp代码
#include "MyLib.h"
MyLib::MyLib()
{
}
int MyLib::addFun(int value1, int value2)
{
return (value1 + value2);
}
int MyLib::subFun(int value1, int value2)
{
return (value1 - value2);
}
右击项目名称,选择“构建”
构建完成后,在项目生成文件夹中生成如下两个文件,
- libMyLib.a:静态链接库文件,MinGW编译器生成的静态库文件后缀是.a,MSVC编译器生成的静态库文件后缀是.lib;
- MyLib.o:目标文件,是编译器编译源文件后生成的中间文件。
二、使用静态库文件
新建一个Qt项目,把上一个项目的如下两个文件拷贝过来
右键项目名称,选择“添加库”
选择“外部库”
点击“浏览”
选择“libMyLib.a”
选择“静态”,取消勾选“为debug...”
点击“完成”
.pro文件中多出如下内容
再次右击项目名称,选择“添加现有文件”
选择“MyLib.h”
MyLib.h文件被添加到了项目中
在.ui界面上添加如下控件,并修改两个QPushButton的objectName
更改.h代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "MyLib.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_addPushButton_clicked();
void on_subPushButton_clicked();
private:
Ui::MainWindow *ui;
MyLib m_lib;
};
#endif // MAINWINDOW_H
更改.cpp代码
#include "MainWindow.h"
#include "ui_MainWindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_addPushButton_clicked()
{
int ret = m_lib.addFun(ui->lineEdit->text().toInt(), ui->lineEdit_2->text().toInt());
ui->label->setText(QString::number(ret));
}
void MainWindow::on_subPushButton_clicked()
{
int ret = m_lib.subFun(ui->lineEdit->text().toInt(), ui->lineEdit_2->text().toInt());
ui->label->setText(QString::number(ret));
}
运行程序,在输入框中输入数值,点击加法
点击减法