|
发表于 2020-4-29 15:58:33
3064 浏览 1 回复
MT2503编译指令说明
本帖最后由 tangh 于 2020-4-29 16:00 编辑
在开始进入编码之前,我们简要介绍一下常用的代码编译指令,在接下来的编码过程中,会经常用到。对于刚
接触 MTK 开发的人,可以把这一节的内容当作词典来用,不记得就查一查,没必要死记。在后面的开发中,我也
会提示采用什么样的指令编译代码。
编译指令通用格式:
- make [-debug] project project_attr command
复制代码 指令格式说明:
1、make:这是一个批处理的文件名称,在工程源码的根目录下,有一个 make.bat 的文件。在 make 后面的字段实际上都是给批处理传的参数,这个名称一般不允许更改,我们把它当做一个固定字段使用。
2、-debug:这个参数只用于编译模拟器。
3、project:这是我们要编译的项目名称。在工程源码的根目录下,有一个 make 文件夹,在这个文件夹里面有一个 Verno_HEXING03AE_11C 文件。这个文件是项目的版本控制文件,在 Verno_ 后面的HEXING03AE_11C_GPRS 就是项目名称。在 make文件夹下面,有可能存在多个这样的文件,那就说明在这个工程源码中,包含多个项目。
4、project_attr:这个字段为项目的属性,常用取值有 gprs、gsm、none。其中 gprs 代码项目支持 sim 卡,可以打电话、发短信,还能上网;gsm 表示该项目也支持 sim 卡,可以打电话,可以发短信,但无法上网,在这样的项目中, 我们无法进行 socket编程; none 表示项目不支持 sim 卡。 那么如何确定项目的属性呢?在上一条 project的介绍中,我们提到了 make目录下的项目版本控制文件——Verno_HEXING03AE_11C.bld。与之对应的还有一个项目配置文件——HEXING03AE_11C_GPRS.mak,那么这个项目的属性就是gprs,每一个项目在 make文件夹中都必须包含这两个文件。
5、command:这是我们要用到的编译命令,采用什么样的方式生成二进制 bin 文件。取值及说明见如下:
new 这个指令耗时最长,它会重新编译所有模块,每一个项目第一次编译都要使用这个指令,在修改了项目配置,或者新增文件时都要使用这个指令重新编译整个项目。
Remake (可简写为 r) 这个指令只是简单的重新编译链接有改动的部分。它不检查依赖关系,不扫描资源,只扫描代码的改变,有改变的重编,资源和无改变的代码不编。如果 r 后面没有其他字段,则重新编译所有模块,如果有其他模块字段,则重新编译单个模块或多个模块。
比如:r mmi_app 则只重新编译 mmi_app 模块,r mmi_app mmi_framework 则只重新编译两个模块。 至于这些模块名称从哪里查找,在后面会有介绍。
Updata(可以简写为 这个指令会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分。它跟 remake 的用法类似。可以更新所有模块,也可以 更 新 指 定 的 模 块 , 比 如 u mmi_app, u mmi_appmmi_framework。但是 r mmiresource 不会重新生成资源,ummiresource 会重新生成资源,相当于 resgen 和 r mmiresource的合并。
Resgen 编译资源。只要修改了.res 文件,都要用这个指令编译;
Gen_modis 生成模拟器工程文件,可用 Visual Studio 2008 生成模拟器,调试 mmi 部分的代码。
编译指令举例:
- make HEXING03AE_11C GPRS new
- make HEXING03AE_11C GPRS resgen
- make HEXING03AE_11C GPRS r
- make HEXING03AE_11C GPRS r mmiresource
- make HEXING03AE_11C GPRS u mmiresource(等同于 make resgen 和 make r mmiresource)
- make HEXING03AE_11C GPRS r mmi_app mmi_framework
- make HEXING03AE_11C GPRS u mmi_app mmi_framework
- make -debug HEXING03AE_11C GPRS gen_modis
- make -debug HEXING03AE_11C GPRS codegen_modis
- make -debug HEXING03AE_11C GPRS new_modis(等同于 make gen_modis 和 make codegen_modis)
复制代码 在后面的编码过程中,我会省略 project project_attr 用 make command 的格式提示大家用什么样的命令来编译代码。比如 make new 就等同于 make HEXING03AE_11C GPRS new,如果你的代码之前有使用该命令编译过,源码根目录中有 HEXING03AE_11C_gprs.log 文件,那直接使用 make new 也是可以编译的,同理直接使用 make r 或者 make r mmi_app 都是可以直接编译。但是对于新手而言,不推荐使用这种简写的指令,防止忘记完整的指令格式。
|
|
手机微信同号:13682654092
|
|
|
|
|
|
发表于 2020-6-11 18:56:24
|
|
|
|
|
|
登录或注册
|