如何在QT平台生成静态库是本文要介绍的内容,主要是来学习QT平台中关于静态库的的应用,具体内容的实现来看本文详解。很多时候我们需要使用到静态库,为了保护自己的核心代码。
通常会将静态库提供给第三方使用。也有些时候便于管理和维护。
因为新手上QT我们也来看看QT平台的静态库如何生成。
用QT_Creator向导随便生成一个工程
因为反正我们要去修改PRO的,可惜向导不向Carbide那样为我们提供可视化的生成向导。呜呜,Nokia的路好长好长。
让我们往下看:
比如我们要生成QDll的静态库
//静态库pro文件如下
TEMPLATE=lib
TARGET=QDll
QT+=coregui
HEADERS+=\
qfunction.h
SOURCES+=\
qfunction.cpp//自己需要封装的方法
symbian{
TARGET.UID3=0xe5afe8a2
#TARGET.CAPABILITY+=
TARGET.EPOCSTACKSIZE=0x14000
TARGET.EPOCHEAPSIZE=0x0200000x800000
MMP_RULES+=EXPORTUNFROZEN
CONFIG+=staticlib\
debug_and_release\
precompile_header
}
qfunction.cpp
//就用个简单的加法来测试
intQFunction::Add(inta,intb)
{
returna+b;
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
build生成对应的库,恭喜你静态库生成了
来看看如何使用自己生成的库呢?
仍然是随便创建一个工程
修改PRO文件如下
QT+=coregui
TARGET=QT_DllDest
TEMPLATE=app
CONFIG+=libQDll
SOURCES+=main.cpp\
mainwindow.cpp\
Rlog.cpp
HEADERS+=mainwindow.h\
qfunction.h\
Rlog.h
FORMS+=mainwindow.ui
CONFIG+=mobility
MOBILITY=
symbian{
TARGET.UID3=0xe404a34b
#TARGET.CAPABILITY+=
TARGET.EPOCSTACKSIZE=0x14000
TARGET.EPOCHEAPSIZE=0x0200000x800000
LIBS+=-lQDll.lib//这个是symbian平台引用静态库
//是的没有写划前面是-l关键字不能写掉
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
//直接调用如下,成功嘎嘎的帅!!
QFunctionafun;
intret=afun.Add(1,2);
qDebug("ret=%d",ret);
RLog::WriteLog("ret=",ret);
- 1.
- 2.
- 3.
- 4.
以上测试代码N78
小结:解析如何在QT平台生成静态库的内容介绍完了,希望通过QT平台上静态库内容的学习能对你有所帮助!