MMI程序编译

本文详细介绍了在Windows环境下,使用Makefile和第三方工具编译MTK MMI程序的过程,涉及ADS1.2、MinGW、MSYS等的安装与配置,以及资源和代码的编译步骤。编译涉及ResGenerator相关脚本,用于生成手机和模拟器使用的资源文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                                                                         MMI程序编译 
1.   编写目的 
本文编写的目的主要是从整体上理解MTK的编译过程,以便较快的处理编译中遇到的问题,同时为以后可能的优化编译过程提供参考。 
  
2.   简介 

MTK的编译过程主要是在windows命令行下通过Makefile文件执行相应的prel脚本或c程序,将资源包生成c源程序,并与相应模块的c程序.o,.lib或.obj的中间代码,最终生成在手机上使用的.bin文件和在模拟器上使用的mmiresource.dll资源文件。


3.编译前的准备工作

  A.编译工具和辅助工具

  | ADS1.2

  | ADS1.2_update_848.exe

  | MSYS

  | MinGW

  | ImageMagick

  | 7z

  B.编译环境搭建

  | 按默认路径安装ADS1.2,并安装848补丁包

  | 按默认路径安装Perl

  | 按默认路径安装7z

  | 安装MinGW

  | 安装MSYS

  | 安装ImageMagick  注意:按默认提示安装到Select Additional Tasks时,所有的选择全取消,后面再按默认安装

  | 复制 7z.exe 拷贝 \7z.exe 至\plutommi\Customer\ResGenertator,并改名为7za.exe

  | 复制MinGW 拷贝 \MInGW至\Tools\MinGW

  | 复制 MSYS 拷贝 \msys\1.0至\Tools\MSYS

  | 复制ImageMagick 拷贝 ImageMagick文件夹下全面文件至\plutommi\Customer\ResGenertor目录下 

  | 设置 make.exe 改名mingw32-make.exe(..\Tools\MinGW)为make.exe,并放在tools目录下

  C.编译环境检查

  | 检查第三方软件安装情况 

  | 检查MTK中Makefile变量是否正确

  打开\make\option.make,检查关于ADS编译器的路径设置

            ifeq($((strip $(COMPILER)),ADS)

                   DIR_ARM      =c:\adsv1_2

                   DIR_ARM :=$(strip $(DIR_ARM ))

                   DIR_TOOL     =$(DIR_ARM)\bin

                   DIR_ARMLIB  =$(DIR_ARM)\lib

                   DIR_ARMINC  =$(DIR_ARM)\include

        Endif

D.结束

      执行make proj_name gprs new_modis    make proj_name gprs/gps  new


4.编译命令与文件

  MTK编译分资源的编译和代码的编译

    1)资源的编译

     a)如下情况,需要重新编译资源

      1. 修改字符串资源文件、字库文件、MMI配置文件等,这些文件位于\plutommi\Customer\CustResource\PLUTO_MMI\

      2. 修改了MMI资源装载配置文件,这些文件位于\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下都是Res_*.*是各个AP或模块的资源装            载文件,包括菜单、图片和字符串资源的装载配置

       3.注意:Cust*.*文件是资源编译生成的,不能手动修改

     b)编译方法

      进入\plutommi\Customer\目录,执行remakeResource.bat。若是在模拟器上使用,则还需要在VC环境下build一下,才能看到效果

     c)与资源编译相关的文件

        | ResGenerator_HW.bat 

           在编译手机目标版工程时,有new ,resgen等选项时,自动调用

         | ResGenerator.bat

            手机PC模拟器工程中,添加新资源后,需要手动调用

         | remakeResource.bat

            手机PC模拟器工程中,只替换图片或更新字符串等情况下,需要手动调用

          | res_gen.txt

            资源编译的log文件,在build目录下

          | Makefile

            \plutommi\Customer\ResGenerator\Makefile 此文件是资源装载预编译程序的Makefile

          | PopulateRes.c 

            \plutommi\MMI\Resource\PopularRes.c 执行资源装载,主体是函数PopulateResData();

           | MMIDataType.h

            \plutommi\MMI\Inc\MMIDataType.h 定义AP的ID范围

2)代码的编译

 A.编译命令

Clean  清除所有的目标文件、库文件合日志文件,保留目录结构

New 清除并重新编译所有的文件

Update 扫描资源、代码的改变,有改变的重编,无改变的重编

Remake 不扫描资源,只扫描代码的改变,有改变的重编,无改变的不编

B.编译相关的文件

编译用到的文件主要放在make文件夹中。

Gsm2.mak   编译过程中主要执行的make文件,这个文件从命令行活得编译参数,做出相应的处理,它定义了各个参数的执行过程,包括:new、remake、update等,以及调用其他perl或c程序生成目标文件

Option.mak  定义了编译环境中用到的工具及相关的目录,根据打的编译开关定义了小的编译和链接选项,编译中包含文件合生成文件的路径,定义trace的头文件路径,全局的编译开关,用户的一些编译选项,最后定义了编译路径和目录。

*.lis    模块的.c文件

*.pth 模块的.c文件存放的路径

*.def 模块用到的编译开关,当模块引用其他模块中在编译开关下定义的变量、函数或宏时,就需要将这个编译开关加起来

*.inc 模块用到的头文件路径,需要将模块引用的头文件及头文件引用的头文件的路径均要包含进来

*_GPRS.mak 定义了需要编译的模块列表、编译中包含文件和生成文件的路径,定义trace的头文件路径,全局的编译开关,用户的一些编译选项,最后定义了编译路径和目录

Comp.mak 编译和集成模块源文件,编译生成库文件

~buildinfo.tmp 包含了在Gsm2.mak和Option中用到的项目和平台名称

~compbld.tmp 包含了编译每个模块时的编译信息

目录文件  生成的目标文件为.bin文件 ,位于\build\proj目录下

Log文件  编译出错查询



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值