在Linux上开发Qt 在linux上开发安卓
创始人
2024-07-31 20:40:27
0

本文介绍的是在Linux上开发Qt,对于这篇文章本人感觉很有成就感,因为你看完之后,有点像越狱。那么看看本文的讲解吧。

对于诺基亚不提供在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解压后,执行以下三条命令

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


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

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

下载arm编译器

没有特别好说的,请下载arm-symbian编译器,然后解压

配置环境变量

将前面的安装好的SDK以及编译器中的一些工具,设置到个人用户的.bashrc中

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

开始编译吧

Qt源码需要用到即将发布的Qt-4.7-beta版,我是直接使用http://qt.gitorious.org/qt/qt代码仓库里的版本,然后在QTDIR目录下执行如下编译命令

  1. $HOME/qt/configure -platform linux-g++ -xplatform symbian/linux-gcce -arch symbian -no-webkit -little-endian  
  2. make  
  3. cd src  
  4. make sis 

遇到的问题

1. configure时提示无法判断littel-endian还是big-endian

解决办法:在configure命令参数中加入-little-endian选项

2. 在调用rcomp生成symbian资源文件时提示”can’t write UIDs to s60main.rsc”

原因: 因为rcomp调用了另外一个应用uidcrc.exe,wine无法找到它(Shiroki@CuteQt有功于此)

解决方法: 将symbiansdk//epoc32/tools/uidcrc.exe拷贝.wine/drive_c/windows/system32目录下

3.编译的时候有两个文件提示TDesC等symbian标识符不认识

解决方法:给src/gui/kernel/qsoftkeymanager_s60_p.h和src/gui/kernel/qkeymapper_s60.cpp文件头部的地方,加入下面两行

  1. #include  
  2. #include  

小结:在Linux上开发Qt的内容介绍完了,怎么感觉有点像智能手机越狱呢?呵呵,还是希望对你有帮助!

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...