解析如何在QT平臺(tái)生成靜態(tài)庫
如何在QT平臺(tái)生成靜態(tài)庫是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)QT平臺(tái)中關(guān)于靜態(tài)庫的的應(yīng)用,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。很多時(shí)候我們需要使用到靜態(tài)庫,為了保護(hù)自己的核心代碼。
通常會(huì)將靜態(tài)庫提供給第三方使用。也有些時(shí)候便于管理和維護(hù)。
因?yàn)樾率稚螿T我們也來看看QT平臺(tái)的靜態(tài)庫如何生成。
用QT_Creator向?qū)щS便生成一個(gè)工程
因?yàn)榉凑覀円バ薷腜RO的,可惜向?qū)Р幌駽arbide那樣為我們提供可視化的生成向?qū)?。嗚嗚,Nokia的路好長(zhǎng)好長(zhǎng)。
讓我們往下看:
比如我們要生成QDll的靜態(tài)庫
- //靜態(tài)庫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
 - //就用個(gè)簡(jiǎn)單的加法來測(cè)試
 - intQFunction::Add(inta,intb)
 - {
 - returna+b;
 - }
 
build生成對(duì)應(yīng)的庫,恭喜你靜態(tài)庫生成了
來看看如何使用自己生成的庫呢?
仍然是隨便創(chuàng)建一個(gè)工程
修改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//這個(gè)是symbian平臺(tái)引用靜態(tài)庫
 - //是的沒有寫劃前面是-l關(guān)鍵字不能寫掉
 - }
 
//直接調(diào)用如下,成功嘎嘎的帥!!
- QFunctionafun;
 - intret=afun.Add(1,2);
 - qDebug("ret=%d",ret);
 - RLog::WriteLog("ret=",ret);
 
以上測(cè)試代碼N78
小結(jié):解析如何在QT平臺(tái)生成靜態(tài)庫的內(nèi)容介紹完了,希望通過QT平臺(tái)上靜態(tài)庫內(nèi)容的學(xué)習(xí)能對(duì)你有所幫助!















 
 
 
 
 
 
 