加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

s60 5版程序在symbian 3适配,升级,编译

发布时间:2020-12-16 00:34:53 所属栏目:大数据 来源:网络整理
导读:? 最近在做symbian^3的适配,因为我们的假面采用的都是系统控件,所以适配起来还是挺简单的。但是,在适配过程中也遇到了一些问题。? 1、编译失败,很多头文件找不到? 这是因为symbian^3将一些头文件放在了新的文件夹下面,只要将头文件所在的目录加到mmp中
?

最近在做symbian^3的适配,因为我们的假面采用的都是系统控件,所以适配起来还是挺简单的。但是,在适配过程中也遇到了一些问题。?

  1、编译失败,很多头文件找不到?

  这是因为symbian^3将一些头文件放在了新的文件夹下面,只要将头文件所在的目录加到mmp中就可以了。当然,系统也提供了一个宏定义来方便我们的操作:APP_LAYER_SYSTEMINCLUDE。只要在mmp中嫁屉这个宏基本上就可以了。另外,还有一个叫APP_LAYER_SYSTEMINCLUDE_SYMBIAN的宏定义,跟前一个不同的是这个宏定义展开后包含的系统路径没前一个多,一般情况下,我们用第二个就可以了。最后一点,为了使我们的mmp文件可以适用于多个sdk,我们只需要嫁屉一个宏判断就可以了。?

  #ifdef APP_LAYER_SYSTEMINCLUDE_SYMBIAN?

  APP_LAYER_SYSTEMINCLUDE_SYMBIAN?

  #endif?

  这样,你的mmp文件既可以用于symbian^3也可以适用于其他版本的sdk了。?

  2、编译帮助文档失败?

  Sorry /epoc32/tools/cshlpcmp.bat is not supported in this release. Please use a different?

  device. Use 'devices' to view the available devices.?

  这是因为symbian^3的SDK中将编译帮助文档的模块给去掉了,我们只要从其他SDK版本中将相应的编译工具复制一份放在相应的目录下就可以了。?

  进入到SDK目录的/epoc32/tools目录下,复制cshlpcmp、perl、perlib三个文件夹到symbian^3的SDK的/epoc32/tools目录下,另外,复制rtf2ptml.exe、cshlpcmp.bat、cshlpcmp_gui.bat、cshlpcmp.jar、cshlpcmp.pl五个文件到/epoc32/tools目录下。再编译帮助文档就没问题了。?

  3、static library?

?

这个网上有几个解决办法

1)将?armv5/udeb?armv5/urel 里所有的东西拷贝到gcce/udeb?gcce/urel

2)检测mmp中的staticlib 是否有没用到的,没用的或找不到的,删掉   如果你额应用中有静态库的话,还会遇到一个问题。?   checklib: error: couldn't open file.?   这是因为在编译GCC的版本的时候,系统会去armv的目录下找静态库,当然找不到了。我们只需要修改一下?   cl_bpabi.pm这个文件,在/epoc32/tools目录下面。将?   PrintList("/' ///n/t/'/./&Generic_Quote/(/"///$/(EPOCSTATLINK$Bl d/)/////$_/"/)" @StatLibList);?   修改成?   PrintList("/' ///n/t/'/./&Generic_Quote/(/"///$/(EPOCBSFSTATLINK $Bld/)//$_/"/)" @StatLibList);?   位置大概在1068行左右?   my $run_checklib = 0;?   if (@StatLibList && $BasicTrgType =~ /^(EXE|DLL)$/o && !$SystemTrg && main::StdCppSupport())?   就可以了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读