目标
类似opencv的库 带命名空间
制作库
pro配置
QT -= gui
TEMPLATE = lib
DEFINES += QmExport
CONFIG += c++11
SOURCES += \
qm2.cpp
HEADERS += \
qm2.h
.h
#if defined(QmExport)
# define QmAPI Q_DECL_EXPORT
#else
# define QmAPI Q_DECL_IMPORT
#endif
#include <QDebug>
namespace qm {
//类
class QmAPI QmMath
{
public:
QmMath();
void add(int a,int b);
};
//函数
//只能声明
void QmAPI sayhello();
//变量
//只能声明
extern QmAPI int flag;
}
.cpp
#include "qm2.h"
using namespace qm;
QmMath::QmMath()
{
}
void QmMath::add(int a,int b)
{
qDebug()<<(a+b);
}
//必须加namaspace
void qm::sayhello()
{
qDebug()<<"hello";
}
//必须加namaspace
int qm::flag=9;
调用库
配置
######################
INCLUDEPATH+= D:\A_Qt\dll\dll3\QmDll //头文件所在文件夹
LIBS+= -LD:\A_Qt\dll\dll3\QmDll\Debug\debug -lQmDll //dll lib的位置
use.h
#include <qm2.h>
private:
qm::QmMath t;
use.cpp
//库的类的函数
t.add(a,b);
//库的函数
qm::sayhello();
//库的变量
qDebug()<<qm::flag;
|