如何在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;
- }
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关键字不能写掉
- }
//直接调用如下,成功嘎嘎的帅!!
- QFunctionafun;
- intret=afun.Add(1,2);
- qDebug("ret=%d",ret);
- RLog::WriteLog("ret=",ret);
以上测试代码N78
小结:解析如何在QT平台生成静态库的内容介绍完了,希望通过QT平台上静态库内容的学习能对你有所帮助!