问题描述: 相同的代码, S60 3rd mr 编译打的sis包要比S60 3rd fp1 SDK编译的大很多
解决方法: 这是由于S60 3rd mr SDK与S60 3rd fp1的GCCE编译器默认编译参数不一样造成的。 S60 3rd FP1 SDK(以及FP1 SDK之后的FP2 SDK)默认就是-O2。而S60 3rd mr SDK以及更早的S60 3rd SDK并没有打开-O2的编译开关。
如果一定要使用MR SDK又想得到较小的安装包,可以参照下面的方法解决。
修改项目的.mmp文件,加入如下一行
OPTION GCCE -O2 -fno-unit-at-a-time
Clean项目后,重新编译打包,可以发现安装包变小了很多。
备注1:加入-O2还会影响速度,如果是计算密集型的程序,推荐加入-O2参数,一般而言会提高速度。
解决方法2:
更好的解决办法是改SDK里面的gcce.mk(C:/Symbian/9.1/S60_3rd_MR/Epoc32/tools/compilation_config/gcce.mk)
将里面的
REL_OPTIMISATION=
一行改为
REL_OPTIMISATION=-O2 -fno-unit-at-a-time
这样就不用每个项目都改mmp了