Quantcast
Channel: LicKy's blog - AS3
Viewing all articles
Browse latest Browse all 11

如何使FlasCC编译的SWC文件变小

$
0
0

当我们使用默认的makefile编译参数的时候,使用FlasCC编译出来的swf或者swc文件都有点大

但我们在maefile文件中增加一个编译参数可以使得文件体积变小不少,而且运行效率也好多很

 

比如我自己编译的一个AStar文件,原来的有600多K,加上那个参数后只有400多K了

而且在flash游戏中寻路时间从50ms以上到最多1ms,效率可见。

 

下面是我的一个makefile配置参数,系统是32位win7系统

T01: check
 "$(FLASCC)/usr/bin/g++" $(BASE_CFLAGS) -O4 AStar.cpp Main.cpp -emit-swc=AStar -o AStar.swc -lAS3++ -jvmopt=-Xmx1G
  
include D:/FlasCC_1.0.1/samples/Makefile.common

clean:
 rm -f *.swf *.swc *.bc *.exe

 

说明:

-O4 :这个参数太好了,使得文件体积大大减小

-jvmopt=-Xmx1G :32位机器编译需要加的参数

-lAS3++:如果使用了AS3/AS3++.h的类库,就需要加这个参数,不然编译会报错。

 

还与其它一些参数可以参考下

1、禁用调试信息

     Release编译时不要加上-g开关。

2、使用-Os编译程序。

    不要使用-funroll-loops等可以加速程序执行但是会大大增加目标代码体积的开关。

3、编译后的程序使用strip去除符号和偏移(限于可执行程序和共享库,其他易出问题) 

4、如果你不需要RTTI,编译时加入-fno-rtti。

5、如果你不需要处理C++异常,编译时加入-fno-exceptions。

6、使用UPX之类的可执行程序压缩程序(只推荐用于可执行程序,用于其他也可,但是较浪费内存)。

 


Viewing all articles
Browse latest Browse all 11

Trending Articles