31、Qt生成使用静态库文件

一、生成静态库文件

新建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));
}

运行程序,在输入框中输入数值,点击加法

点击减法

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值