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) 编辑 收藏 举报