【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
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值