论坛» DIY与开源设计» 开源硬件

疯壳MTK智能穿戴入门篇-编译指令

菜鸟
2020-10-26 15:47 1楼

官网地址:https://www.fengke.club/GeekMart/views/mall/goodsDetails.html?productId%3D33

配套书籍:https://www.fengke.club/GeekMart/views/mall/goodsDetails.html?productId%3D73

配套视频:http://www.fengke.club/GeekMart/su_fihsGbMhu.jsp

淘宝地址http://shop115904315.taobao.com/

QQ群:457586268

编译指令

在开始进入编码之前,我们简要介绍一下常用的代码编译指令,在接下来的编码过程中,会经常用到。对于刚接触MTK开发的人,可以把这一节的内容当作词典来用,不记得就查一查,没必要死记。在后面的开发中,我也会提示采用什么样的指令编译代码。

编译指令通用格式:

make [-debug] project project_attrcommand

指令格式说明:

1、make:这是一个批处理的文件名称,在工程源码的根目录下,有一个make.bat的文件。在make后面的字段实际上都是给批处理传的参数,这个名称一般不允许更改,我们把它当做一个固定字段使用。

2、-debug:这个参数只用于编译模拟器。

3、project:这是我们要编译的项目名称。在工程源码的根目录下,有一个make文件夹,在这个文件夹里面有一个Verno_XXXXXX.bld文件,比如Verno_FengKe2502C_11C.bld这个文件是项目的版本控制文件,Verno_后面的FengKe2502C_11C就是项目名称。在make文件夹下面,有可能存在多个这样的文件,那就说明在这个工程源码中,包含多个项目。

4、project_attr:这个字段为项目的属性,常用取值有gprsgsmnone。其中gprs代码项目支持sim卡,可以打电话、发****,还能上网;gsm表示该项目也支持sim卡,可以打电话,可以发****,但无法上网,在这样的项目中,我们无法进行socket编程;none表示项目不支持sim卡。那么如何确定项目的属性呢?在上一条project的介绍中,我们提到了make目录下的项目版本控制文件——Verno_FengKe2502C_11C.bld。与之对应的还有一个项目配置文件——FengKe2502C_11C_XXXX.mak,比如FengKe2502C_11C_GPRS.mak。那么这个项目的属性就是gprs。每一个项目在make文件夹中都必须包含这两个文件。

5、command:这是我们要用到的编译命令,采用什么样的方式生成二进制bin文件。取值及说明见如下表格:

new

这个指令耗时最长,它会重新编译所有模块,每一个项目第一次编译都要使用这个指令,在修改了项目配置,或者新增文件时都要使用这个指令重新编译整个项目。

Remake(可简写为r

这个指令只是简单的重新编译链接有改动的部分。它不检查依赖关系,不扫描资源,只扫描代码的改变,有改变的重编,资源和无改变的代码不编。如果r后面没有其他字段,则重新编译所有模块,如果有其他模块字段,则重新编译单个模块或多个模块。比如:r mmi_app则只重新编译mmi_app模块,r mmi_app mmi_framework则只重新编译两个模块。至于这些模块名称从哪里查找,在后面会有介绍。

Updata(可以简写为u

这个指令会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分。它跟remake的用法类似。可以更新所有模块,也可以更新指定的模块,比如u mmi_app, u mmi_app mmi_framework。但是r mmiresource不会重新生成资源,u mmiresource会重新生成资源,相当于resgenr mmiresource的合并。

Resgen

编译资源。只要修改了.res文件,都要用这个指令编译

Gen_modis

生成模拟器工程文件,可用Visual Studio 2008生成模拟器,调试mmi部分的代码。

编译指令举例:

makeFengKe2502C_11CGPRSnew

makeFengKe2502C_11CGPRSresgen

makeFengKe2502C_11CGPRSr

makeFengKe2502C_11CGPRSr mmiresource

makeFengKe2502C_11CGPRSu mmiresource(等同于make resgenmake r mmiresource

makeFengKe2502C_11CGPRSr mmi_app mmi_framework

makeFengKe2502C_11CGPRSu mmi_app mmi_framework

make -debugFengKe2502C_11CGPRSgen_modis

make -debugFengKe2502C_11CGPRScodegen_modis

make -debugFengKe2502C_11CGPRSnew_modis(等同于make gen_modismake codegen_modis

在后面的编码过程中,我会省略project project_attrmake command的格式提示大家用什么样的命令来编译代码。比如make new就等同于makeFengKe2502C_11CGPRSnew,如果你的代码之前有使用该命令编译过,源码根目录中有FengKe2502C_11C_gprs.log文件,那直接使用make new也是可以编译的,同理直接使用make r或者make r mmi_app都是可以直接编译。但是对于新手而言,不推荐使用这种简写的指令,防止忘记完整的指令格式。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]