当前位置: 技术问答>linux和unix
arm-linux编译后程序太大 怎样优化
来源: 互联网 发布时间:2017-03-01
本文导语: 最近做一个项目的移植,应用程序代码部分完全一样,经历的3次移植, 1.基于arm720T内核的平台,带MMU,linux系统 CC=arm-linux-gcc 2.基于arm7的,uClinux系统 CC=ucfont-gcc arm-linux-gcc 3.基于ARM9的,带浮点数运算单元,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提供的编译器是worknxpgcc-4.3.2-glibc-2.7bin
我理解是编译器使用了glibc,而其它的是使用uclibc?
这个应该怎么解决
是不是需要手工制作基于uclibc的交叉编译工具???
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提供的编译器是worknxpgcc-4.3.2-glibc-2.7bin
我理解是编译器使用了glibc,而其它的是使用uclibc?
这个应该怎么解决
是不是需要手工制作基于uclibc的交叉编译工具???
|
strip 瘦身没 不知道百度之
|
not stripped
你手动strip应该会小很多。
uclibc会比glibc轻量,编译出的程序也会相对较小。
如果对大小有这么严格,可以考虑换掉glibc
你手动strip应该会小很多。
uclibc会比glibc轻量,编译出的程序也会相对较小。
如果对大小有这么严格,可以考虑换掉glibc