Symbian开发笔记(一) Qt for Symbian环境的安装

以下文字是工作中的总结,如有错误或者不足之处,望指出。不胜感激!

 

安装步骤说明:

以下带*号的要安装在同一个盘中,并且路径不能有空格和中文,否则。。。

 

1. 安装JDK

 

2. 安装ActivePerl-5.10

 

3. 安装Carbide_cpp_v2_3_en *),装好后运行“程序\Nokia\Carbide.c++\Configure environment for WINSCW command line”,输入Y,按回车。

 

4. 安装Nokia_N97_SDK_v1_0_en*),这个安装结束后会提示安装CSL Arm Toolchain,这个要装,路径默认即可。装好后运行“程序\Nokia Developer Tools\N97 SDK\v1.0\Languages\Change to Chinese”,可以将模拟器语言切换成中文。

 

5. 安装qt-symbian-opensource-4.7.0-s60.exe*

 

6. 安装Nokia_Qt_SDK_Win_offline_v1_0_1_en*

 

7. 运行Carbide.c++,会提示有一个新的SDK,按Restart,重启一下,然后关掉。

(做这一步是为了那编译器识别新装的SDK,否则会编译不通过)

 

8. 配置Mobile_extensions(这个是Qt4.4以前的老库,有新库所没有的一些功能,比如电话功能,不用就不要配置了,它对新版有兼容性问题,经过配置直接静态编译才可以使用),

  a.解压Mobile_extensions_preview_3*) 和MobExtConfig-0.5*)放在同一文件夹。

  b.点击开始菜单下的Qt for Symbian by Nokia v4.7.0 (S60 Opensource)--Qt for Symbian Command Prompt,会打开一个cmd窗口

  c.在打开的cmd窗口运行:

configure.bat -sourcepath D:\Qt\Mobile_extensions\extensions\src    (路径要改成你相应的)

 

9. 配置QtMobility(Qt移动开发的新库,解压缩qt-mobility-symbian-opensource

然后把解压出来的qt-mobility-1.0.2-epoc32-5.0.zip文件解压到N97 SDK里面。

.点击开始菜单下的Qt for Symbian by Nokia v4.7.0 (S60 Opensource)--Qt for Symbian Command Prompt,会打开一个cmd窗口,在打开的cmd窗口运行:

Configure.bat

显示成功后再运行:

make debug-winscw

结束后关闭此窗口即可

 

10. 将C:\Program Files\Common Files\ 下的Symbian文件夹移动到和Qt在同一盘并且路径中不能有空格和中文,然后打开 我的电脑--属性--高级--环境变量,将系统的Path变量中的C:\Program Files\Common Files\Symbian\tools替换成新的路径,如下图所示:

(不改的话由于原路径中有空格,会导致SDK编译不通过)

 

11. 配置Qt的编译器,Qt默认是没有识别SDK的模拟器的,需要自己配置。打开Qt Creator--Tools--Options--Qt4

点击那条黄色选中的,按下图配置路径:

填写完就按OK,然后关掉Qt,重启Qt即可。

 

12. 启动Qt,开始第一个项目HelloWorld

点击File--New File or Project,选择Mobile Qt Application,下一步,项目名HelloWorld,路径要和Qt同盘哦,这个是关键,否则编译器无法编译出sis文件。其他设置默认即可。

Qt会自动打开mainwindow.ui文件,这是控件布局的文件,拖一个Label上去,内容改成HelloWorld即可。

然后点击左边的

会出现一个列表,选择Symbian Emulator,如下图:

然后按那个绿色的按钮,然后就是等待编译完成并运行,如果你能看到最终结果,说明配置成功。

 

常见问题解答:

 

1.为何要装Carbide 和 Qt Creator两个开发环境?

答:装Carbide的目的是为了使用N97 SDK所带的模拟器,我们开发使用Qt Creator即可

 

2.N97竖屏版的在本本这类的小屏幕上会显示不全,如何解决?

答:打开N97 SDK安装目录下的\epoc32\data 文件夹,可以看到epoc_*****_touch_***.ini文件,你要使用哪个分辨率的就打开哪个,在第三第四行是显示的偏移,都改为0即可。

ScreenOffsetX   0

ScreenOffsetY  0 

然后修改相应的bmp文件,将大小改为适合的分辨率即可

效果如图:

 

3.安装qt-symbian-opensource的目的?

N97 SDK装上Qt Symbian

 

4.Mobile_extensionsQtMobility的区别?

Mobile_extensions4.4以前版本用的老库,功能已经比较完善,但是兼容性差,只支持S60QtMobilityQt全新开发的一个库,支持多种移动平台,但功能还不够完善,比如常用的打电话功能,要用这个功能只能使用Mobile_extensions或者进行Symbian C++的混合编程。

 

5.为啥明明代码没有问题,效果就是出不来呢?

答:如果你确定代码没有问题,那只能说是QtBug,目前Qt for SymbianBug还是非常的多的:

开发前最好先看看Bug列表,否则你调试N小时也找不出问题所在会让你怀疑自己的能力的。

如果你发现了Bug,可以向下面的网站提交Bug

http://bugreports.qt.nokia.com/secure/Dashboard.jspa 

 

6.为啥delete了对象,内存还是没有释放?

答:Bug呗,比如QtWebkit,所以官方会让你把堆空间的大小改大,官方推荐设置最大堆空间32M,可是很多Symbian机器连15M RAM都没有,在这些机器上程序要么跑不起来,要么跑一会就自动关闭了。。。这个只能等待官方的修复咯。

 

7.Qt内几种编译选项的说明

答:

Maemo: 诺基亚搞出来的不同于Symbian的另一个系统,是Meego的前身,效果类似于第二个选项Qt Simulator

Qt SimulatorQt自带的模拟器,目前功能还很低端,唯一好处是速度比SDK带的模拟器快,可以用vs2008编译器或者MinGW,但是千万不要被它欺骗了哦,一些VC特有的东西在手里都能编译通过,可是无法编译成sis文件,因为真机根本没有这个API。。。还有一个问题就是显示差异的问题,在它上面看到的是完美的效果,可是Bug的存在,在真机上又是另外一个完全不同的效果,所以除非是学习,不然就不要用这个模拟器,否则。。。(我是过来人,被它骗了不少时间,鄙视一下)

Symbian Device:这个选项可以编译出sis文件来,也可以通过数据线在真机上调试。

Symbian Emulator:这个才是我们真实开发要用到的,是N97 SDK所带的模拟器,效果与真机基本一样,用的是gcce编译器,编译很慢,启动也很慢。

 

 

后记:

目前Qt for Symbian还不够完善,主要有:

1.Bug不少。

2.内存占用较多,而Symbian系统的机器一般又比其他系统的可用内存少,并且不少组件还内存泄露,这更是雪上加霜了。

3.CPU占用大,你可以看看上面的Bug列表,Qt常常因为CPU的占用导致ViewSvr等后台程序的崩溃,而诺基亚总是喜欢使用德州仪器的低端CPU,这就更。。。

4.部署麻烦,几个库加起来就有近20M

5.目前能完善支持的机型还不多。

6.。。。。。。

 

    这情形就如同当年的.net framework,就是不知道Qt能不能像它一样迅猛发展,以此挽救诺基亚智能机的市场份额。希望Qt不要再一味加功能了,先把N个版本都存在的一堆Bug修复掉。。。

文章转载自 http://luzj.me/symbian-developer-qt-for-symbian-setup.html

 

 

 

多宝城

posted @ 2010-10-24 23:56  luzj  阅读(1646)  评论(0编辑  收藏  举报