在Linux上开发Qt

移动开发
目前的Symbian SDK并非为Linux专用,而是直接借用了Windows版本的,所以为了保证SDK中的那些工具能够在Linux下使用,你需要先把Wine(Linux下的windows 模拟器)装上。

本文介绍的是在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. gcceDirfull/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 <private/qcore_symbian_p.h> 
  2. #include <private/qt_s60_p.h> 

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

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-02-25 15:49:09

NecessitasQtAndroid

2011-06-15 16:17:24

Linux Qt SDK

2010-07-02 12:58:39

Meego开发

2011-06-13 15:57:26

linux QT QTOPIA

2019-12-05 10:30:17

LinuxMultitail

2022-06-16 10:46:43

UbuntuLinux

2011-03-22 10:06:27

LinuxZFS

2011-06-28 13:38:15

Arm linux QT

2011-06-22 17:27:19

QT 进程通信

2011-07-02 13:24:39

QT Linux

2011-06-14 09:21:55

Linux Qt 环境变量

2011-03-25 11:21:36

NagiosLinux

2021-08-22 08:43:23

LVMLinux MintLinux

2018-09-30 10:18:44

Linux 文件系统目录

2019-10-22 09:50:46

Intel NUC安装Linux

2023-10-17 11:27:42

2019-10-16 17:00:51

LinuxUbuntuVMware

2023-11-09 16:13:53

2021-10-02 10:15:19

UbuntuLinuxAnyDesk

2011-06-13 14:00:55

Qt Designer linux
点赞
收藏

51CTO技术栈公众号