【Symbian基础知识整理】_Symbian的目录结构和程序编译链接的简单过程

    以S60_3rd_FP2_SDK为例,在Symbian开发环境(非VS搭配插件形式的而是用Carbide)搭建好之后,在S60/devices/S60_3rd_FP2_SDK/下有如下几个重要的文件目录:

1。Examples :目录下存储的是基于Symbian OS的例子比如多媒体协议程序MultimediaProtocols和文件浏览FileBrowse,这些例子是与OS之上的UI无关的。目录下大多数例子可以通过编译直接在模拟器和手机上运行。

2。S60**Examples:存储的是S60 UI上开发的例子供开发者学习,这个目录下的程序是依赖于S60 UI SDK的,都能够编译和运行。

3。S60Doc(有些是docs):存储的主要是Symbian的开发帮助文档。

4。S60tools:是SDK提供的一些辅助开发工具,如MBM文件浏览器、svg-svgt转换器等。

5。epoc32:关键的目录,存储的是Symbian手机的模拟器,Symbian应用开发所使用的头文件和链接库等都在该目录下。开发过程中会频繁接触到该目录下的众多子目录,各子目录的主要功能如下:

  1。BUILD:该目录是一个临时目录,这个目录主要存储编译过程中产生的临时文件。

  2。data:  该目录下存储的是模拟器的Z盘数据,类似手机的Z盘,它存放了一些资源文件。比如工程被编译后会在该目录下的Z/resource/apps下产生图片资源文件.mbm文件(多位图文件,BMP打包后产生),MIF文件(多矢量图文件,SVG打包后产生),RSC文件(工程资源文件和注册表资源文件)。

  3。include:该目录下存放的是SDK提供的头文件,包括OS和UI的头文件,用户可以直接包含使用,另外,在编译一个工程后所产生的RSG文件(资源文件头文件)和MBG文件(位图资源头文件)也会在此目录下。

  4。release:该目录下存储的是各个平台对应的模拟器和相关的链接库。armv5存放的是armv5编译器(一个商业化的编译工具,它编译生成的目标文件体积更小,执行效率更高,默认的sdk只提供了gcce编译工具)使用的链接库;GCCE存放的是GCCE编译器使用的链接库;winscw存放的是windows上的模拟器程序和相关的链接库,winscw/udeb存放的就是相关的链接库,如果用户开发的工程中用到了自己编写的或者其他的链接库,则要手动添加到此目录中,工程被编译后,也会在winscw/udeb下生成相应的二进制可执行文件。另外,一个工程被编译后会在udeb/Z目录下生成与data/Z目录下相同的资源文件。

  PS:WINSCW从名字上就可以看出它是win下面的东西,生成一个模拟器版本,让你在模拟器里跑跑调调程序罢了。
         而GCCE则是用carbide自带的ARM编译器生成一个可放入手机中运行的程序,也就是你最终要的东西。

         ARMV5是收费的,因为编译出的程序体积更小,执行效率更高...是这样吗没钱买过也没用过...

  5。winscw:该目录下的两个子目录C和D对应的是模拟器上的C和D盘,开发者可以在C盘写数据,D盘是手机的内存,一般只受手机系统的调用,开发者不可使用。

 

下面介绍一下Symbian程序的工程目录(一般位于C/Symbian/Carbide/workspace/***...):

1。group:该目录主要用于存放工程的配置文件,如bld.inf为build工程的配置文件,里面描述了支持的平台以及工程的makefile文件(.mk)和项目定义文件(.mmp);

2。data:用于保存程序定义的资源文件,如**.rls、**.rss、**_reg.rss等。

3。inc:主要存放程序代码的头文件。

4。src:主要存放程序代码的源文件。

5。gfx:主要存放程序的图标文件(SVG格式矢量图)以及图片文件(BMP格式位图,也可以自定义其他文件夹进行存放,在mmp中指定相应路径就可以)。

6。sis:存储安装程序时使用的**.pkg程序打包文件和**.sis程序安装文件。

7。help:帮助文档目录。

 

Symbian工程的简单编译流程如下:

1。首先从bld.inf文件进入调用**.mmp文件和**.mk文件。**.mmp文件会根据自身的配置信息对**.rss(程序资源文件)和**_reg.rss(注册表资源文件)进行编译,并生成**.rsc和**_reg.rsc(二进制资源文件)用来使程序加载使用资源和手机加载程序。同时生成的**.rsg(资源头文件,对应生成的每个资源的ID)在程序加载资源时使用(程序代码中使用这些资源的ID来指定相关的资源)。

2。**.mmp文件会对位图资源进行编译打包生成**.mbm(多位图资源文件,包含程序要使用的位图以备程序加载),并生成**.mbg(位图资源头文件-包含位图ID的文件)。

3。**.mk文件会对SVG格式的矢量图进行打包并生成**.mif(多矢量图资源文件)。

4。最终,编译器通过**.mmp文件编程生成可执行文件。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值