当前位置: 首页 > news >正文

第二篇: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
}

 

转载于:https://www.cnblogs.com/setoutsoft/p/3908686.html

相关文章:

  • Angular中在前后端分离模式下实现权限控制 - 基于RBAC
  • window策略设置
  • iOS开发拓展篇—音频处理(音乐播放器5)
  • Storm--一个包含存储和计算的大数据实时计算新系统
  • 033_3
  • 得到手机后台中的应用程序
  • SQLCLUSTER sql数据库监测工具
  • 通过Rman方式创建Oracle11g DataGuard物理备库
  • nmon 监控软件
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • Frame - 快速创建高品质的 Web 应用原型
  • [2544]最短路 (两种算法)(HDU)
  • Spring整合Quartz在Linux下定时器被调用两次
  • 8月第3周中国五大顶级域名增5.7万 美国减4.2万
  • 用cubieboard做示波器
  • ----------
  • [Vue CLI 3] 配置解析之 css.extract
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • HTTP 简介
  • Java基本数据类型之Number
  • Linux Process Manage
  • PHP变量
  • Shadow DOM 内部构造及如何构建独立组件
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • win10下安装mysql5.7
  • 技术发展面试
  • 简单易用的leetcode开发测试工具(npm)
  • 每天10道Java面试题,跟我走,offer有!
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端性能优化--懒加载和预加载
  • 前端学习笔记之观察者模式
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 阿里云ACE认证学习知识点梳理
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​学习一下,什么是预包装食品?​
  • # .NET Framework中使用命名管道进行进程间通信
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (06)Hive——正则表达式
  • (C#)一个最简单的链表类
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (二十三)Flask之高频面试点
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)编辑寄语:因为爱心,所以美丽
  • .net mvc部分视图
  • .NET 反射的使用
  • .NET 设计一套高性能的弱事件机制
  • .net 设置默认首页
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET大文件上传知识整理