解析如何在QT平臺生成靜態庫
如何在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平臺上靜態庫內容的學習能對你有所幫助!