gcc不链接不用函数的方法

编译的四个步骤:
1.preprocessing,预处理
2.compilation proper,编译
3.assembly,汇编装配
4.linking,连接

 

对于一个文件A,里面有很多函数,但是main函数只调用了其中的一个,其他函数也会被编译,也会被“打包”到最后的可执行文件中,要从中分离出不要的函数,方法如下:

1.执行gcc -function-sections <name.c>。其中-function-sections的意思是,将不同函数编译到不同的section上面。如果没有这个选项,所有的函数都会编译到一个section上面,于是函数就不能被“剥离”

 

2.执行ld --gc-sections <object>。表示把不要的函数section去掉。

 

可以比较一下,传统方法做出来的可执行文件更大。而这样做的更小。

posted on 2010-01-05 22:30  vincenzo.lai  阅读(4295)  评论(1编辑  收藏  举报

导航