MTK移植编译错误和解决方法.docx_第1页
MTK移植编译错误和解决方法.docx_第2页
MTK移植编译错误和解决方法.docx_第3页
MTK移植编译错误和解决方法.docx_第4页
MTK移植编译错误和解决方法.docx_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

compile*1 GEMINI_MTK6225编译1 安装ADS和perlMITK6226相同2 当安装环境ready后再PH_code下面点击cmd.exe进入控制台界面ph resgen/编译资源ph new_modis/如果编译顺利,每个子项目应该都是p,如果有F,则到MoDIS下的产生F的子项目下有个xx.dsw文件,用vc进入该文件进行编译,编译不通过,则根据error提示进行调试,产生F的所有子项目都通过后,再进入DOS控制台,对modis重编译,输入ph remake_modis,编完全部都是P后,ph gen_modisph codegen_modis /generate modis database,这一步可以不做,对模拟器没影响再到MODIS目录下用vc打开MoDIS.dsw,对所有子项进行编译,如果编译通过,产生一个MoDIS.exe文件放在本目录下的一个MoDIS目录下的Debug下面,双击该文件即可得到手机模拟器界面。2 wxt_common.cerror:重定义BOOL在wxt_common.c中把#if !defined(_MTK_SUPPORT_)#include #endif放在#include MMI_include.h之前3 Error: L6218E: Undefined symbol Image$ZI$Limit (referred from sys_stackheap.o).Not enough information to produce a SYMDEFs file.Finished: 1 information, 72 warning and 1 error messages.答:找个c文件添加 如下代码就通过了 int Image$ZI$Limit=0x8f00000;4 toolsmake.ext: *applib.lib Error 2D:mtkworkMTK_CodePH_CodebuildPH25_GEMINIlog查看res_gen文件,注意:当资源编译错误是,res_gen文件的大小为1k,资源编译没错时res_gen文件大小为0k。././MMI/Inc/MMIDataType.h:331:1: unterminated #ifndef/这个错误是ifndef没有结束,也就是没有相应的#endif打开applibapplibmiscsrcapp_datetime.c, line 2502: Serious error: C2859E: Missing #endif at EOFplutommiMMIFrameworkNVRAMManagerNVRAMManagerIncNVRAMType.h, line 111: Serious error: C2335E: expected but found typedef in enum definition5 常见错误分析及解决方法: Such as :compile block -Con_appError:make1: * No rule to make target Hai_Extern.obj, needed by build/GXQ26_07B/gprs/MT6226o/lib/conn_app.lib. Stop.Reason:1.在make文件中添加了 Hai_Extern.c文件的编译,但在对应的文件目录下找不到对应的.c文件。2.在make文件中没添加生成Hai_Extern.obj目标文件的源文件.c或.h. Compile block -mmi_appError:plutommimmiebookreaderebookincEbookProt.h, line 29: Error: C2456E: undeclared name, inventing extern int GUI_SHARED_BYTESplutommimmiebookreaderebookincEbookProt.h, line 29: Serious error: C2958E: illegal in constant expression: non constant GUI_SHARED_BYTES:Solve mothed:查找GUI_SHARED_BYTES 是否有定义,没有定义则需要添加定义,以及定义为constant是否正确。 Compile block -mmi_framework Error: plutommimmiebookreaderebookincEbookProt.h, line 173: Warning: C2816W: Unbalanced #if/#ifdef/#ifndef/#endif in file Solve mothed: check Number of #endif and #if Compile block- customError:customsystemGXQ26_07B_BBcustom_sap.h, line 68: Serious error: C2933E: type disagreement for MSG_ID_CUSTOM1_CUSTOM2customsystemGXQ26_07B_BBcustom_sap.h, line 68: Serious error: C2934E: duplicate definition of MSG_ID_CUSTOM1_CUSTOM2customsystemGXQ26_07B_BBcustom_sap.h, line 69: Serious error: C2933E: type disagreement for MSG_ID_CUSTOM2_CUSTOM1customsystemGXQ26_07B_BBcustom_sap.h, line 69: Error: C2991E: linkage disagreement for MSG_ID_CUSTOM2_CUSTOM1 - treated as externcustomsystemGXQ26_07B_BBcustom_sap.h, line 71: Serious error: C2933E: type disagreement for MSG_ID_TTSPLAYER_SERVICEOPENcustomsystemGXQ26_07B_BBcustom_sap.h, line 71: Error: C2991E: linkage disagreement for MSG_ID_TTSPLAYER_SERVICEOPEN - treated as externSolve mothed: 检查编译文件是否重复包含custom_sap.h文件Error:在生成database BPLGU文件出错原因 可能是因为缺少 以下三个文件:造成。BPLGUInfoCustomApp_MT6226_S01_MAUI_07B_W08_16_MP_V2BPLGUInfoCustomApp_MT6226M_S01_MAUI_07B_W08_16_MP_V2BPLGUInfoCustomApp_MT6227_S01_MAUI_07B_W08_16_MP_V2还有其他原因造成,则需要查buildlog下log文件根据提示的错误信息来更改工程文件。Error:编译某个文件时提示 can not open XXX.h文件Solve mothed:1. 在make 文件中修改对应的XXXinc文件,添加对.h文件的编译2. 在.h文件中包含的字符、变量、函数等,用extern 对其进行定义。6 当资源编译错误时,log下的res_gen文件为1k,没错误时大小为0k。如果在编译模块之前reg_gen的大小为1k,则要用new命令,如果为0k,则可以直接用remake命令7 #ifdef _TOPSUN_CLUB_ 和#if defined(_TOPSUN_CLUB_)区别,不要写错,如果要用到|或&时,就一定是用#if defined()形式8a. new: 不管资源、代码是否有改变,全部重编; b. update: 扫描资源、代码的改变,有改变的重编,无改变的不编; c. remake: 不扫描资源,只扫描代码的改变,有改变的重编,资源和无改变的代码不编; d. clean: 清除build目录下的所有内容,保留目录结构9 添加了新资源之后要想在modis上显示出来,在用vc编译modis之前,先要在控制台下执行命令a ph resgen 或ph newb ph new_modis第一次,如果不是第一次,可以用ph remake_modis,其实在new_modis时,当出现编译模块产生log文件时,可以关闭new_modis,直接用vc编译modis。c 再用vc编译modis工程ph new时出现的错误在buildgemini25log下查看ph new_modis时出现的错误在Modis_BUILD_LOG下查看10 D:mtkworkmusic_online_codemusic_online_codePH_Codetopsun_appUisUIUisUtils.c(159) : error C2632: long followed by long is illegal把#define TICK_2_MS(tick) (unsigned int)(long long)(tick) * 302448) 16)中的long long该为long11 调试,调试某句后某个函数有没有运行到,可以在其前面随便添加一个字符串,如aaaaa,在remake一下,如果log找到相关错误,那么说明程序编译到该语句。在linux下有printf语句可以打印出信息,在mtk下有没有相关打印函数?12 在系统工程中添加任何新功能的代码时,都要添加开关(即一个开关宏),这样方便不需要该功能时只要把宏屏蔽即可。13 编译都没出错,但烧机后发现没有出现添加的功能,结果发现是烧机的bin文件搞错了,当有几个bin文件时,一定要选择刚生成的哪个bin文件,要查看路径和文件生成的时间。14 在修改或替换了某些头文件时有时需要删除相关模块,否则编译不会出错,但没有把更新的内容编译进去,看不到新加的内容,可以直接到build下删除模块,也可以用命令make custom=MAUI25_GEMINI gprs c topsun_app(模块名,c表示clean)15 custmenutree_out.c里面的内容是自动生成的,不需要手动添加,只有需要在各个主菜单的入口添加子菜单(注:每添加一个子菜单要+1)即可,函数跟custmenutree.c里面的add函数内容一样。16 注意:加入新程序时定义了menu,str,image等“资源头文件”路进一定要加入到/plutommicustomerReGeneratormakefile当中,否则编译会得到错误信息如:error:topsunclub_res_def.his not file or direction.此外如果生成了xxxsrc.h头文件,里面申明了sethilitehandler的init函数,那么这个头文件的路进也要添加到make/plutommi/mmi_framework.inc中,否则在产生bin文件的时候会出现init函数连接出错,错误是该函数没有定义。17 在把菜单id加到主菜单时,如#ifdef _TOPSUN_CLUB_ +4,#endif 注这种写法是不正确的,应为一旦宏被关闭,逗号也被关闭,而逗号又是用来分割参数的,这样就造成参数错误,正确的写法是应该把逗号写在宏作用域外面。18 编译obj文件是都正常,但在生产bin文件是产出错误,undefined symbol Multi_entry_club_init,这是由连接错误产生的,连接时没有连接到该函数,这主要是该函数没有被编译到(怎么知道它没有编译到呢,在该函数中第一行添加ffffffffffff;,remake之后如果还是没有错误,说明编译时没有进入该函数),没有编译到该函数的主要原因有:1 申明该函数的头文件路径没有加入到makeplutommimmi_frameworkmmi_framework.inc中定义该函数的文件要添加到mmi_framework.lis,路径添加到mmi_framework.pth中,第二,该函数被某个宏关闭,先屏蔽掉这个宏调试看看;第三,头文件加了或作了extern申明,那么可能是定义该函数的文件没有添加进项目。19 如果修改了头文件继续remake可能会导致头文件修改的部分没有编译进模块,所以可以在先删掉模块再remake,又两种方法删除模块:1. ph c mmi_framework 2.直接到build下面把mmi_framework目录删掉。20 编译错误undefiend synbol “SetLeftSoftkeyFunction”答:在该文件的最上面添加#include MMI_include.h21 编译错误old-type synbol Multi_entry_club_init答:在申明这个函数的地方没有添加分号。22 像populatescr.c和res_xxx.c等文件都在编译资源resgen后就知道编译错误,错误文件在resgen.lob.txt中,而模块如mmi_app等xxx.c文件就在后面的模块编译中出现错误,错误信息都在个模块的log当中,如果以上两者没有编译出错,而在产生bin的时候连接出错,错误信息在MT6225.log中。23 在一个文件中定义了函数,在另一个文件中可以加extern申明再调用,24 lib文件的产生,以topsun_club.lib为例,要把topsun_club的一部份.c文件加入topsun_club.lib,那么这部分文件的路径应该加在maketopsun_clubtopsun_club.lis里面,如topsun_common.c文件,而不需要编译进lib里面的topsun_club的.c文件的编译路径加入到makeplutommimmimmi_app.lis里面,入topsun_interface.c文件。25 在res_settings.c中,结构对象ent的结构定义是struct direct* ent;而不是struct dirent *ent;26 在崔工给的第一个ph_code代码包中编译资源的时候会有生成str_merge.o文件时会有permit deny,这个主要是原来的str_merge.o文件被设置成了只读,不能被新生的.o文件替换掉,所以在该文件的属性中把只读勾掉即可。同样的错误还有frotRes.o,mtk_resgenerator.exe,都要把只读勾掉。27 现场源代码移植时在其他平台中添加程序并且生成lib库1 在拷入原定码之前要修改厂商代码和指令。2 把源代码topsun_club拷贝到ph_code下3 把maketopsun_club拷贝到make下4 在plutommimmimmi_app.inc中增加topsun_club5 在plutommimmimmi_app.pth中增加topsun_club6 在makeoption.mak中把包含topsun_club.lib的句子屏蔽掉7 在makeREL_CR_GEMINI_MMI_GPRS.mak中增加一句CUS_REL_SRC_COMP += topsun_club8 remake之后即可得到一个topsun_club.lib文件,把这个lib文件替换原来的lib文件9 把2,3,4,5,7中新增加的内容删除,把6中屏蔽的句子打开。28 在添加topsun图片目录时,直接添加在mainLCD中,而不是添加在压缩文件image.zip中,这样资源每编译一次topsun就会被删除一次,原因是每添加一次image.zip就会解压一次,把原来的mainLCD覆盖掉了。把topsun添加到image.zip中的方法就是打开image.zip进入mailLCD目录下,然后直接用鼠标把topsun目录拖到mainLCD下,跳出的菜单点击确定即可。29 在去掉在线音乐时屏蔽掉了BSN_12530_SUPPORT,在编译topsun_phone.c文件时还是会报错在Bsn12530Res.h中没有定义UIS_12530_BASE,解决的方法就是topsun_phone.c中的头文件bsn_12530.h中包含的Bsn12530Res.h屏蔽掉,并且把void uis_12530_init(void)和U16 ts_get_base_res_id(void)函数屏蔽掉。30 在添加多路菜单后模拟器中看不到multimedia里面的菜单,结构在查询res_mainmenu.c中的ADD_APPLICATION_MENUITEM2(MAIN_MENU_MULTIMEDIA_MENUID,下面没听添加相应菜单,一般如果添加成功,在custmenutree_out.c中的MAIN_MENU_MULTIMEDIA_MENUID后面可以看到,看不到则可能是在res_mainmenu.c中某个地方遗漏了。31 当在生成bin文件时有许多error LNK错误时,说明定义这些symbol的函数或所在的c文件没有被编译,没被编译有可能是这个文件不存在,有可能是编译路径没有添加,还有一种最严重的情况是一个文件中某些函数没有被编译到往往是添加是if 和endif之间没有一一对应导致的,应该查找该函数的上下最近的if 和endif的对应关系。32 ././MMI/Resource/PopulateRes.c: In function PopulateResData:././MMI/Resource/PopulateRes.c:1902: error: parse error before voidmake1: * PopulateRes.o Error 1这个错误主要是在函数PopulateResData添加函数PopulateMythroadRes(void);时,参数不能是void,正确的调用:PopulateMythroadRes();32Error: L6218E: Undefined symbol soc_close_nwk_account_by_id (referred from topsun_soc.obj).Error: L6218E: Undefined symbol always_ask_encode_data_account_id (referred from topsun_soc.obj).版本冲突导致。plutommimmiframeworktaskstaskssrcmmitask.c, line 3788: Serious error: C2859E: Missing #endif at EOF这个错误一般都是缺少了endif,加一个就可以了。33make1: * No rule to make target mmidsm.obj, needed by build/MAUI25_GEMINI/gprs/MT6225o/lib/mmi_framework.lib. Stop.答:添加的路径不对34 在添加res_mainmenu.c中添加菜单时,起作用的是ADD_APPLICATION_MENUITEM(MAIN_MENU_FUNANDGAMES_MENUID,IDLE_SCREEN_MENU_ID,就是含有IDLE_SCREEN_MENU_ID的那个添加菜单项。如果菜单发生的混乱,可能是菜单数字添加错误,这是要逐项查找添加的数字,每添加一个菜单应该增1,如果没在enum里面的total之前添加相应的变量,那么看直接增加的数字是否吻合,随便屏蔽一个菜单时,除非是屏蔽宏,否则enum里面的变量也要相应屏蔽,否则就会发生混乱,总之添加一个菜单,就要增加一个数字,一一对应。35 查看宏有没有被编译进去,查看Custom_option.txt或TargetOption.txt文件查看菜单有没有添加进去,查看custmenutree_out.c查看字符串有没有添加成功,查看String_resource_usage.txt 36 计算 MTK中程序占用的ROM 及 RAM 在build 下面一个 *.lis文件 Total RO Size(Code + RO Data) rom sizeTotal RW Size(RW Data + ZI Data) ram sizeTotal ROM Size(Code + RO Data + RW Data)37 error:out of rom 在xxx_gprs.mak中添加了COMPOBJS += plutommimmiMythroadMythroadlibskyanimation-win32.lib,这个lib是不能放在arm下编译连接的,只能放在vc下编译连接,arm处理器不支持win32的lib。 38 在plutommicustomerregeneratormakefile下面添加-I ././putommimmitopsun_appinc 并且跟上下一行有空行,结果resgen编译时没有resgen.log文件答:原因有二:1,putommimmitopsun_appinc里面的弄错误了,应该是putommi/mmi/topsun_app/inc,添加时一定要参考上下行的格式2,第一步改正之后,还是有上面的错误,结果去掉-I ././putommimmitopsun_appinc 与上下行之间的空行结果正确,所以添加的时候不能增加空行。39 其实资源文件显示错误都可以从编绎资源文件的临时文件中找到原因。资源文件生成的临时文件主要有:CustMenuTree_Out.c,这个文件是菜单临时文件,生成了我们的最终显示的菜单结构。如果你添加的菜单没有显示,正常显示的菜单突然不显示了或者显示错位了,或者显示的菜单与调用的功能不符合了,都可以从这里查到原因。resource_base_table.txt这个文件生成的是资源的ID范围,如果资源显示时出现了稀奇古怪的现在,就要看一下这个文件,检查一下你的资源文件是不是超出了设置的范围,如果超出了,就要修改MMIDataType.h重新设定范围。string_resource_usage.txt这是生成的字串对应的文件,该文件可以查找固定ID对应的U16类型的值,可以与程序对应的值作比较,如果不对应,显示就会不对image_resource_usage.txt这个与上一个一样,是图片生成的文件,可以查找图片ID对应的U16值menu_resource_usage.txt这个是菜单生成的文件,可以查找菜单ID对应的UI值audio_resource_usage.txt这个是AUDIO菜单生成的文件通过这些文件可以快速诊断资源类出错的问题发生的原因和修改方法,对这些文件的研究,也有利于我们研究出更好的资源管理方法40Error: L6218E: Undefined symbol cbm_encode_data_account_id (referred from topsun_phone.obj).答:这个错误主要是版本冲突,本机的MTK_code版本不是08A0,所以把topsun_include.h中的#define _TS_MTK_VERSION_08A0_屏蔽掉。41 在移植过程中尽力使用移植文档提供的宏开关,因为使用其他的宏开关,在lib里面的一些函数可能被推荐的宏关闭,导致连接错误。42 一般不能在函数里面申明extern变量和函数,如果这样做了,extern申请的变量和变量一定要放在函数体的最前面,否则会编译报错。43 new之后在资源编译之间就产生错误:nvram_cust_pack.c中没定义null答:把nvram_user_config.c中的#ifdef _TOPSUN_CLUB_ , NVRAM_EF_TS_VRAM_ID, /* LID */ 32, /* Size */ 10, /* Total */ NULL, /* Default value */ NVRAM_ATTR_AVERAGE, /* Attributes */ NVRAM_CATEGORY_USER | NVRAM_CATEGORY_CUSTPACK, /* Category */ TS, /* fileprefix 最多4字节 */ 000, /* fileverno 最多3字节 */ TS VRam0, /* description */ NVRAM_INVALID_VALUE /* Record ID is calculated by NVRAM. DO NOT TOUCH. */ #endif /* #ifdef _DMG_VRAM_ */中的NVRAM_CATEGORY_CUSTPACK去掉。44 一般字符串ID等没定义的错误主要是一下一些情况造成的:一,如果是自有res_xxx.c文件,那么可能没在makefile中添加定义的头文件,如果添加了但路径添加错了,必然是.MMI写成了.MMI等,二,没有定义xxx_BASE,这个有可能是没有添加MMIDataType.h文件,或者缺#endif什么的。45 在修改mmi_feature_switch.h文件时修改的内容每编译一次就被覆盖掉答:要修改这个文件里面的内容,一定要修改plutommiCustomerCustResourceMMI_features_switchEMPTY.h文件中修改,EMPTY修改成相应的工程名,凡是MMI_features_switchEMPTY.h修改不了时,就考虑看看是不是这个文件没修改。46 一般可以clean一个模块,也可以remake一个模块或一个文件make ph25 gprs c custom/清除custom模块make ph25 gprs r custom/remake custom 模块47 a 在情景模式中添加菜单,要添加bpm图片,否则会是红x,在添加函数时 ADD_APPLICATION_MENUITEM(MENU_ID_1_CLUB,MAIN_MENU_PROFILES_MENUID,0,SHOW,MOVEABLEWITHINPARENT,1,STR_ID_1_CLUB,IMG_PROFILES_MEETING);要放在res_profiles.c,而不要放在res_topsun.c中,原因不详,PopulateResourcesTopsunClub();不能放在 PopulateprofileMenu();前面。b 在每个主菜单的.c文件中都有init函数,所以要添加应用程序的入口是,输入init查找带init的初始化函数,把应用程序的入口放在其中。c 电子书是应用程序,不能再加子菜单d DEVELOPER_BUILD_FIRST_PASS这个宏是在编译的过程中打开。48 在res_xxx.c文件中添加以下三种的调试结果:ddddddddddddddd ./mingw32/3.3.1/include/stdarg.h:44: error: syntax error before typedefdddddddddddddddd, ./include/winuser.h:3403: error: parse error before va_listddddddddddddddddd; 编译能通过。49 nvram_auto_gen.exe错误,某个地址段“writer”错误答案:#ifdef _TOPSUN_CLUB_ NVRAM_EF_TS_VRAM_ID,#endif这里多定义了一个变量,而实际上没有用到。50 利用compare备份要修改的文件对比移植文档和工程文档点击no orphans-expand all folders-select all files-点击右键-copy to folder-在selection选中要备份的一边-在action中选择要备份的路径(最好放在桌面建一个文件夹backup)-keep relative folder structure-start开始备份,备份的文件都保持了相应的结构,要恢复的时候点击工具栏中的syncronize to right或者syncronize to left,这是全部恢复,如果只要回复部分文件,用ctrl+filename选择要备份的多个文件,点击工具栏中的copy按钮进行恢复。51 在编译mtk是要是双核满载编译的方法在make2.pl修改一段把if ($action eq update) | ($action eq remake) | ($action eq new) | ($action eq bm_new) | ($action eq c,r) | ($action eq c,u) if ($ENVNUMBER_OF_PROCESSORS 1) if ($fullOpts eq ) $fullOpts = CMD_ARGU=-j$ENVNUMBER_OF_PROCESSORS; else $fullOpts .= ,-j$ENVNUMBER_OF_PROCESSORS; 改为if ($action eq update) | ($action eq remake) | ($action eq new) | ($action eq bm_new) | ($action eq c,r) | ($action eq c,u) | ($action eq scan) if ($ENVNUMBER_OF_PROCESSORS 1) if ( $exec_xgc_result=0 ) $no_of_proc = $ENVNUMBER_OF_PROCESSORS*2; if ($fullOpts eq ) $fullOpts = CMD_ARGU=-j$no_of_proc; else $fullOpts .= ,-j$no_of_proc; else if ($fullOpts eq ) $fullOpts = CMD_ARGU=-j$ENVNUMBER_OF_PROCESSORS; else $fullOpts .= ,-j$ENVNUMBER_OF_PROCESSORS; 52 在modis中调试程序要看到信息/* if you want to print dbg info in console, pls turn on SOC_DBG_ENABLE */#define SOC_DBG_ENABLE/默认是关闭#ifdef SOC_DBG_ENABLE kal_printf(bearer_info account_id=%d state=%sn, account_id, state_strstate);#endif /* SOC_DBG_ENABLE */在模拟器下也可以直接用printf,如 printf(+%s(%d)=n,_FILE_,_LINE_);但是这个在手机上编译不通过,所以要加宏_TARGET_MTK_限制.53 在option.mak中endif中的e不能是大写,否则就会报错缺少endif,这个错误在从word里面拷贝时容易出错。直接word文档中拷贝代码到source insight中时编译要注意,比如 #define START_LCD_TRANSFER REG_LCD_START = 0; REG_LCD_START = LCD_START_START_BIT;这句中的直接拷贝过去时就会报错,因为这个符号是在中文输入法下输入的,要从新输入一个。54 make1: Entering directory F:/mtk/GEMINI_UU_THM/theme/GEMINI_0812Error: L6850E: Archive contains non ELF Object voipcall.objmake1: * build/EELINK25_GEMINI/gprs/MT6225o/lib/mmi_app.lib Error 1这个错误是由于编译的时候正在编译voipcall.c文件,突然死机了,导致这个文件没有编译完成,把voipcall.obj删掉重新编译就可以了。54 vc调试1 当调试一个while循环时,可以在while的号处设一个断点,按F5,如果到了能到达断点,说明循环没错。55 在编译resgen的时候无效,还不知道原因,但解决的方法是从备份文件中的240X400plutommiCustomer下面把remakeResource.tmpResGenerator.tmpResGenerator_HW.tmpUpdateSkin.tmp拷贝到相应的目录下,resgen又可以用了。56 LINK : fatal error LNK1104: cannot open file guilibd114.lib project-seting-link页 object/library modules里输入guilibd114.lib tools-Options-Directories Show Directories for 里点library files 添加你那个guilibd114.lib所在的路径 57 在#ifdef前面不能添加注释符号/*,否则会导致上一个#ifdef 和#endif不能正确配对/*#ifdef /正确写法/*#ifdef /错误写法57 如果让全局变量不让其他文件应用,那么前面加static申明,这样其他文件定义相同的变量就不会引起重定义,函数也同样,如果其他问题要调用static函数,则前面也要加static申明。58 ./Res_MMI/Res_Games.c:2086: error: two or more data types in declaration of PopulateBumpRes./Res_MMI/Res_Games.c:2086: error: function definition declared typedefmake1: * Res_Games.o Error 1这个错误是因为某个struct或enum后面没有添加分好;,后来通过查找,在新添加的downdefs.h中定义屏幕的那个enum后面没有添加;,今后遇到这个问题就是查找最新添加的头文件里面的struct或enum后面是否添加了分号。59 系统new的时候出现can not open mmi_feature_check.obj错误,要把option.mak下面的一个DIR_ARM = D:aweihuaIMG_MANAGE屏蔽掉,一般这种错误可能就要在option.mak查找。还有就是=makeOption.mak中DIR_ARM路径没有改g: = c:60 extern tm_theme_list_struct *thm_details;编译出错这个主要是宏_MMI_THEMES_V2_SUPPORT_没有打开,这个宏没有打开又有可能是CFG_MMI_THEMES_V2_SUPPORT或_DOWNLOADABLE_THEME_或CFG_MMI_THEMES_APPLICATION没有打开61 240x400跑模拟器会跳出错误mmi_app.lib(mainmenu.obj) : error LNK2001: unresolved external symbol _DYM_enter_Itemmmi_app.lib(mainmenu.obj) : error LNK2001: unresolved external symbol _DYM_ShowMenuFirstmmi_app.lib(a8club.obj) : error LNK2001: unresolved external symbol _club_send_msg_rspDebug/MoDIS.exe : fatal error LNK1120: 3 unresolved externalsError executing link.exe.MoDIS.exe - 4 error(s), 25 warning(s)这个错误解决可以在相应的文件下定义空函数的方法:如#ifndef _TARGET_MTK_void DYM_enter_Item(int index) return;#endif62 在res_mmi中把res_uudo.c改为res_uudo_old.c后编译资源,res_uudo_old.c也会被编译到,删掉res_uudo_old.c后还是会编译到,应该在F:mtkGEMINI_UU_THM_uudothemeGEMINI_0812plutommiCustomer下搜索res_uudo_old.c,会发现在另外一个目录下还有一个res_uudo_old.c,把这个文件删掉就不会再编译到这个文件了。63 plutommimmimiscframeworkmiscframeworkincPlmnEnum.h, line 44: Serious error: C2335E: expected but found in enum definition 这个错误主要是makefile文件中的添加的头文件路径后面少了一个导致的,PlmnEnum.h/* Do NOT modify the following line. It is a keyword for the PLMN automatic create tool */* plmncreate.exe: generate string id enum */这个错误应该在编译资源的时候就出错makefile:127: * missing separator. Stop.这个错误表示makefile后面缺少64 PopulateRes.o(.text+0x34d3): In function PopulateResData:E:/240X400_Hel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论