日期:2014-05-16  浏览次数:20736 次

arm-linux编译后程序太大 怎样优化
最近做一个项目的移植,应用程序代码部分完全一样,经历的3次移植,
1.基于arm720T内核的平台,带MMU,linux系统 CC=arm-linux-gcc
2.基于arm7的,uClinux系统 CC=ucfont-gcc arm-linux-gcc
3.基于ARM9的,带浮点数运算单元,linux系统 CC=arm-vfp-linux-gnu-gcc

应用程序包括client和minigui两个进程,代码完全一样,但是这次移植发现编译后边的超大
平台1:client:350K mginit:998K
平台2: client:298K mginit:903K
平台3:client:842K mginit:2738K
现在编译后是原来的3倍多,这个三个代码是完全一样的,我注意到
NXP提供的编译器是work\nxp\gcc-4.3.2-glibc-2.7\bin

我理解是编译器使用了glibc,而其它的是使用uclibc?
这个应该怎么解决
是不是需要手工制作基于uclibc的交叉编译工具???

------解决方案--------------------
strip 瘦身没 不知道百度之
------解决方案--------------------
not stripped

你手动strip应该会小很多。

uclibc会比glibc轻量,编译出的程序也会相对较小。

如果对大小有这么严格,可以考虑换掉glibc