第二篇:SOUI源碼的獲取及編譯


源代碼的獲取

SOUI的源碼采用SVN管理。

SVN:http://code.taobao.org/svn/soui2

這里主要包含兩個目錄:trunk 及 third-part。

trunk目錄保存SOUI項目的全部代碼,third-part保存soui系統使用到的不方便放到trunk的第三方庫,目前只有一個WKE(一個精簡的webkit)的源代碼。

一般情況下只獲取trunk的代碼就行。

SOUI的編譯

SOUI項目采用QT的qmake管理項目文件。qmake已經從QT中分離出來,不需要你的機器上安裝QT。

如果你的機器上安裝了VS2008,可以直接打開trunk的根目錄下的soui.08.sln來編譯,這個項目中各工程的編譯依賴已經設置好,直接F7就可以全部完成編譯。

如果你的機器安裝的是其它版本(支持vs2005-vs2013),可以采用trunk目錄下的make(*).bat來生成對應版本的項目文件,項目文件生成成功后會在根目錄生成一個soui.sln,打開該sln即可。VS2010+的版本需要先生成VS2010的項目文件,再用VS打開並升級。要生成vs2005,可以手動修改make(*).bat中的參數。

如果安裝的是vs2008或者vs2010還可以使用buildAll_x86.bat來生成項目文件並使用命名行完成編譯。

打開make(dll-win32-vs08).bat可以看到里面只有兩行代碼:

call "%VS90COMNTOOLS%..\..\VC\vcvarsall.bat" x86
tools\qmake -tp vc -r -spec .\tools\mkspecs\win32-msvc2008 "CONFIG += DLL_SOUI USING_MT CAN_DEBUG"

第一行通過VS的環境變量加載VS的PATH信息。

第二行調用qmake生成項目文件: -spec 后面的參數指定生成的項目文件VS版本(03,05,08,10),CONFIG += ***用來控制如何生成項目文件。項目文件支持4個預定義參數:

DLL_SOUI:代表將SOUI模塊編譯生成一個DLL,沒有該參數則生成LIB;

USING_MT:代表使用MT方式連接CRT,否則采用MD方式;

CAN_DEBUG:為release版本生成調試符號;

USING_CLR:項目提供“公共語言運行時”支持;

如果需要其它配置,可以手動修改common.pri。

 

下面是common.pri的代碼,基本可以望文生義:

CONFIG -= qt
CONFIG += exceptions_off stl_off

CharacterSet = 1
#DEFINES -= UNICODE


CONFIG(debug, debug|release) {
OBJECTS_DIR = $$dir/obj/debug/$$TARGET
DESTDIR = $$dir/bin
QMAKE_LIBDIR += $$DESTDIR
}
else {
OBJECTS_DIR = $$dir/obj/release/$$TARGET
DESTDIR = $$dir/bin
QMAKE_LIBDIR += $$DESTDIR
}

#<--下面這段代碼為debug和release生成不同的文件名
SAVE_TEMPLATE = $$TEMPLATE
TEMPLATE = fakelib
TARGET = $$qtLibraryTarget($$TARGET)
TEMPLATE = $$SAVE_TEMPLATE
#-->

DEFINES += _CRT_SECURE_NO_WARNINGS

QMAKE_LFLAGS += /MACHINE:X86


!CONFIG(USING_CLR){
#關閉RTTI
QMAKE_CXXFLAGS_RTTI_ON += /GR-
}
else{
QMAKE_CXXFLAGS += /clr
}

QMAKE_CXXFLAGS += -Fd$(IntDir)


QMAKE_CXXFLAGS_RELEASE += /O1
QMAKE_CXXFLAGS_RELEASE += /Zi

CONFIG(CAN_DEBUG){
#Release版本允許生產調試符號
QMAKE_LFLAGS_RELEASE += /DEBUG
QMAKE_LFLAGS_RELEASE += /OPT:REF /OPT:ICF
}

CONFIG(USING_MT){
#使用MT鏈接CRT
QMAKE_CXXFLAGS_RELEASE += /MT
QMAKE_CXXFLAGS_DEBUG += /MTd
}

CONFIG(USING_CLR){
#使用MD鏈接CRT
QMAKE_CXXFLAGS_RELEASE -= /MT
QMAKE_CXXFLAGS_DEBUG -= /MTd

QMAKE_CXXFLAGS_RELEASE += /MD
QMAKE_CXXFLAGS_DEBUG += /MDd
}
#關閉異常
QMAKE_CXXFLAGS -= -EHsc

win32-msvc*{
QMAKE_CXXFLAGS += /wd4100 /wd4101 /wd4102 /wd4189 /wd4996
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM