一、编译自己编写的静态链接库
博主默认大家已经将 VS2013 与 Qt 配置成功,没有配置成功的,自行在网上搜索
1、创建 Qt 新项目,如下
2、创建完项目后,右键你的项目属性,如下
将配置类型更改为 静态库(.lib)
3、编写一个自己的例子,这里博主编写了一个具有 “两个 float 类型数的求和” 功能的类,如下:
.h文件
#ifndef TESTLIB_H
#define TESTLIB_H
class testLib
{
public:
testLib();
~testLib();
float GetSum(float a, float b);
private:
};
#endif // TESTLIB_H
.cpp 文件
#include "testlib.h"
testLib::testLib()
{
}
testLib::~testLib()
{
}
float testLib::GetSum(float a, float b)
{
return a + b;
}
4、右键自己的项目,生成后会在你自己的工程项目中生成一个testLib.lib文件,这便是你自己编写的静态库文件
二、调用自己编写的静态库文件
1、新建一个 Qt 应用程序(博主的工程名字为 testsumlib),如第一部所示,只是这次不需要将配置类型更改为 静态库,这次我们是编写 .exe ,来调用自己编写的静态库。(知道你们聪明,不必多说)
2、将自己编写的静态库项目的头文件 testlib.h 复制到自己的项目中
3、将自己编译后的静态库文件 testLib.lib 添加到自己的项目中,如下操作步骤:
- 右键项目-链接器-常规,将自己生成的静态链接库目录添加到附加依赖库目录中,如下:
- 然后将自己的静态库文件名称添加附加依赖项中,如下:
4、编写测试项目(输入两个数, 求和)界面如下:
.h文件
#ifndef TESTSUMLIB_H
#define TESTSUMLIB_H
#include <QtWidgets/QWidget>
class testLib;
class QLabel;
class QLineEdit;
class testsumlib : public QWidget
{
Q_OBJECT
public:
testsumlib(QWidget *parent = 0);
~testsumlib();
public slots:
void showSum();
private:
testLib* pSum;
QLabel* pLabel;
QLineEdit* pLeftEdit;
QLineEdit* pRightEdit;
};
#endif // TESTSUMLIB_H
在cpp文件中将 头文件
testlib.h 包含进来即可
.cpp 文件
#include "testsumlib.h"
#include "testlib.h"
#include <QtWidgets/QPushButton>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets\QLabel>
#include <QtWidgets\QLineEdit>
testsumlib::testsumlib(QWidget *parent)
: QWidget(parent), pSum(new testLib)
{
QLabel* pLeftNumber = new QLabel("LeftNumber");
pLeftEdit = new QLineEdit;
QLabel* pRightNumber = new QLabel("RightNumber");
pRightEdit = new QLineEdit;
QHBoxLayout* pUpLayout = new QHBoxLayout;
pUpLayout->addWidget(pLeftNumber);
pUpLayout->addWidget(pLeftEdit);
pUpLayout->addSpacerItem(new QSpacerItem(10, 10, QSizePolicy::Expanding));
pUpLayout->addWidget(pRightNumber);
pUpLayout->addWidget(pRightEdit);
QPushButton* pButton = new QPushButton;
pButton->setText("Sum");
pLabel = new QLabel(this);
QHBoxLayout* pDownLayout = new QHBoxLayout;
pDownLayout->addWidget(pLabel);
pDownLayout->addWidget(pButton);
QVBoxLayout* pVLayout = new QVBoxLayout;
pVLayout->addLayout(pUpLayout);
pVLayout->addLayout(pDownLayout);
setLayout(pVLayout);
connect(pButton, SIGNAL(clicked()), this , SLOT(showSum()));
}
testsumlib::~testsumlib()
{
}
void testsumlib::showSum()
{
bool ok;
float leftNum = pLeftEdit->text().toFloat(&ok);
float rightNum = pRightEdit->text().toFloat(&ok);
float SUM = pSum->GetSum(leftNum, rightNum);
pLabel->setText(QString::number(SUM));
pLabel->setAlignment(Qt::AlignCenter);
}
此时便可以调用自己编写的静态库,博主也是现学现卖,打算后续用Qt 调用caffe 编译的静态库,用到自己的工程中