Posts Tagged ‘build’

Nokia Qt SDK的远程编译功能

什么是远程编译
远程编译是指在客户端将源代码提交到服务器,在服务器端进行编译,将编译好的可安装程序下载到本地。 这样做有几个好处
很好的兼容性。服务器端由官方维护,开发环境能够保持和手机运行环境的一致性
良好的可配置性。在客户端的开发者,只需配置一下服务器的编译平台,就能够生成不同的代码。
跨平台开发。 开发者无论是Windows/Mac/Linux操作系统,只需提交代码,即可得到目标平台的代码。目前Mac/Linux还不提供Symbian的编译器,但是使用远程编译你也能很方便在Mac/Linux平台下开发Symbian应用。
目前Nokia Qt SDK里已经集成了远程编译,本文将介绍在Nokia Qt SDK中如何使用远程编译。
使用远程编译
SDK 安装选项
要使用远程编译,需要在安装Nokia Qt SDK的时候将远程编译功能给选上,在安装类型上选择 Custom

在安装组件中,将Remote Compiler选上

激活远程编译
要使用远程编译功能,需要你拥有一个诺基亚论坛帐号,然后利用它进行授权使用,配置方法: 主菜单->Tools->Options->Projects->Remote compiler

如果配置成功,上图中Logout字样会变亮。此时当你新建一个工程的时候你会看到多出来一些”Remote Compiler”的Qt版本

如果是已经创建好的工程,也可以通过项目的编译选项添加”Remote Compiler”的支持

在设置了Remote Compiler支持后,可以为远程支持设置不同的Qt平台.如Maemo/S60 3rd/S60 5th等

执行编译则和在本地编译没什么区别,点击榔头编译按钮就可以。编译完成会生成 .sis(Symbian)或.deb(Maemo)文件。可以直接安装到手机上。
注意
如果你的网络需要代理才能访问Internet,那么同样在配置诺基亚论坛帐号授权时,需要在那里填入代理服务器的相关信息。

Read More...

Tags: , , ,
Posted on June 29th, 2010 in Qt技术, s60 | No Comments ».

在Linux上开发Qt for Symbian

对于诺基亚不提供在Linux环境下的Symbian SDK这件事情,我已经忍了很久了。现在它终于迈出了一小步。
Qt Labs终于在几天前推出了如何在Linux开发Qt for Symbian应用的一篇博客,需要自己从源代码编译Qt for Symbian的版本。实话说,还不是很方便。如果你不着急用,还是静待官方推出编译好的安装包吧,那时候跟编普通Qt for Linux应用没什么区别了,执行qmake;make就能搞定。如果你和我一样有编译狂躁症,或者build控,那么一起上路吧:)
老外文章得贝得贝说一大通,感觉步骤很多似的,其实没那么多。
预备条件:因为目前的Symbian SDK并非为Linux专用,而是直接借用了Windows版本的,所以为了保证SDK中的那些工具能够在Linux下使用,你需要先把Wine(Linux下的windows 模拟器)装上。
下载Symbian SDK
需要下载两个安装包,这里使用S60 5th版本,另外Qt需要open c & cpp的插件。下载地址分别为
S60第五版SDK下载
S60_Open_C插件下载
GNUPOC工具下载
gnupoc有点陌生,也是在Linux上开发symbian应用的核心组件。可以将gnupoc拆开成gnu-poc来理解,就是gnu下的epoc环境。利用该工具可以将我们从windows下下载的symbian sdk安装包解压安装到Linux环境中,GNUPOC下载地址为http://www.martin.st/symbian,选版本1.15即可。
Symbian SDK 安装配置
将上面下载的GNUPOC解压后,执行以下三条命令

cd gnupoc-package-1.15/sdk
./install_gnupoc_s60_50 ~/S60_5th_Edition_SDK_v1_0_en.zip ~/symbiansdk
./install_openc_16_s60 ~/work/s60_open_c_cpp_plug_in_v1_6_en.zip ~/symbiansdk

下载一个Symbian SDK的补丁文件,然后利用下面命令打上补丁

cd ~/symbiansdk
gunzip symbiansdk-gcce.gz
patch -p0 < symbiansdk-gcce

下载arm编译器
没有特别好说的,请下载arm-symbian编译器,然后解压
配置环境变量
将前面的安装好的SDK以及编译器中的一些工具,设置到个人用户的.bashrc中

export EPOCROOT=$HOME/symbian-sdk/
QTDIR=$HOME/build/qt
gcceDir= full/path/to/arm-2009q3/bin
export PATH=$QTDIR/bin:$EPOCROOT/epoc32/tools:$gcceDir:$PATH

Read More...

Tags: , ,
Posted on April 27th, 2010 in Linux技术, Qt技术, s60 | 16 Comments ».

如何发布基于Maemo5的Qt程序(打包.deb格式)

鉴于Qt良好的跨平台特性,想要将Qt程序编译移植到Maemo平台上,一般都不会遇到太大问题。
关于怎么安装Maemo开发环境请参考CuteQt网站Maemo相关文章,如果你是Linux用户则有更简单的方法,到Nokia论坛去下载最新版的SDK安装程序,是PythonQt界面的,一口气点确认和下一步就可以。
本文关心的主题是怎么将Qt写的应用程序打包成Maemo的deb格式,方便其他人下载和安装。因为Qt的编译系统是利用自有的qmake,和传统GNU automake的方式不太一样,所以有些细节的地方需要注意。下面我们就以Qt的例子应用wiggly为例,一步步来看如何制作Qt的.deb包。(本文操作环境:Maemo5 SDK的ScratchBox环境中)。
1.先建一个空白的编译目录
目录名要求是包名加版本的格式,那么我么建立一个wiggly-3.23的格式(3.23是google离开拆拿到日子,嗯呐)。
2.利用dh_make建立基本的控制文件
进入wiggly-3.23执行以下命令:
DEBFULLNAME=”Cute Qt” dh_make –createorig –single -e cuteqt@cuteqt.com -c gpl
如果你的系统里没有dh_make,需要将”dh-make”的软件包装上,以上命令DEBFULLNAME用于指定发布者的名字,–single是指编译的是当个应用,-e后面加发布者的电子邮件地址,-c后面指的是软件的发布模式,这里指的是GPL. 执行以上命令后可以看到在当前目录下多出来一个debian目录,debian目录下有一些debian工具打包时要用到的文件,暂时跳过。
3.将含源代码的wiggly目录加入编译目录
此时,我们的目录机构应该是主目录下有两个子目录,分别为wiggly-3.23/debian和wiggly-3.23/wiggly,前者包含编译控制文件,后者包含源代码。
4.在wiggly-3.23增加一个top.pro文件
文件内容为
QMAKEVERSION = $$[QMAKE_VERSION]
ISQT4 = $$find(QMAKEVERSION, ^[2-9])
isEmpty( ISQT4 ) {
error(“Use the qmake include with Qt4.4 or greater, on Debian that is
qmake-qt4″);
}
TEMPLATE = subdirs
SUBDIRS = wiggly
前面部分通过qmake版本测得Qt是否为qt4以上版本,后面部分指定子目录,这也是在创建你自己的工程时,根据你的代码目录需要改动的地方。

Read More...

Tags: , , ,
Posted on March 24th, 2010 in Linux技术, Qt技术 | No Comments ».

Qt中的qreal, float还是double ?

最近在别人的基础上开发Qt/MIPS代码的时候碰到一个离奇的错误,说是下面这个符号找不到
_ZN4QPenC1ERK6QBrushfN2Qt8PenStyleENS3_11PenCapStyleENS3_12PenJoinStyleE,利用c++filt工具一看就是QPen::QPen(QBrush const&, float, Qt::PenStyle, Qt::PenCapStyle, Qt::PenJoinStyle),到帮助系统查了一下,第二个参数是qreal。
现在问题就来了qreal到底是float还是double呢。
我到qglobal.h去看源代码,如果是QT_ARCH_MIPS宏存在的情况下就应该是”typedef qreal float” 啊,不知道前面那个仁兄怎么编译出来的这个函数是_ZN4QPenC2ERK6QBrushdN2Qt8PenStyleENS3_11PenCapStyleENS3_12PenJoinStyleE呢,也就是QPen::QPen(QBrush const&, double, Qt::PenStyle, Qt::PenCapStyle, Qt::PenJoinStyle) ,而且也是MIPS的代码
很费解,很费解  ~ 抓了他们的configure脚本过来才发现问题所在,他们的选项里有下面这样的
/configure -embedded  -xplatform qws/linux-mips-g++
-embedded里没带选项,所以不会产生QT_ARCH_MIPS的宏~~ 透心凉
其实 -arch mips可以代替前面两个选项的组合。

Read More...

Tags: , ,
Posted on December 27th, 2009 in Linux技术, Qt技术, 未分类 | 1 Comment ».

从Qt仓库获取最新代码的新手指南

大家如果经常上Qt的官网可能注意到Qt从发布4.5开始开放了源代码仓库,并且邀请广大开源爱好者贡献自己的力量。 有兴趣有能力的同学们可要加油了哦~
当然大多数同学还是像我这样有兴趣但没能力的,不过也不用太着急,我们仍然有监督的权力,呵呵。
Qt的源码仓库
Qt的源码仓库用git做版本管理,提供浏览器可以访问的界面, 随便拿个browser就可以浏览仓库里的文件内容。
仓库的位置在 http://qt.gitorious.org/qt/qt
如果要下载源码其实也比较方便, git有不同平台的客户端,所以不管你用windows还是linux都可以很容易地获得最新的Qt源码并对其进行编译和验证。 几乎所有的Linux发行版都带了git的安装包,现成可用。 安装好git之后用下面的命令下载源码:
git clone git://gitorious.org/qt/qt.git
这样你拿到的是默认源码分支“master”。 用”git branch”命令可以看到当前工作的分支。
而用下面的命令可以查看Qt所有的源码分支:
git remote show origin

Read More...

Tags: , , ,
Posted on October 23rd, 2009 in Linux技术, Qt技术, Windows技术, 随笔类 | 6 Comments ».