请问用GCC Link的时候如何去除不用的接口

比如:
link test1.o, test2.o, test3.o, 在这些obj里有一些函数接口是没有被调用到的,如何在link的时候把这些无用的接口去掉以减少代码空间。谢谢
[95 byte] By [sysinner] at [2008-1-9]
# 1
分成多個.c
再用ar rs libaaa.lib test1.o, test2.o, test3.o
gcc -laaa

gangjh-阿飞 at 2007-10-18 > top of Msdn China Tech,Linux/Unix社区,程序开发...
# 3
strip -R可以去除不用的section
strip -u可以去除不用的函数及符号
# 4
學習了
gangjh-阿飞 at 2007-10-18 > top of Msdn China Tech,Linux/Unix社区,程序开发...
# 5
strip -u好象没有这个参数,strip -R可以去除类似.text, .data之类的section,可是函数是存在于.text section里的,包括调用到的和没有被调用到的,比如:
.text 0x0000000084308440 0x840
test.lib(test.o)
0x00000000843085e0 testFun1
0x0000000084308440 testFun2
0x0000000084308640 testFun3
0x00000000843085a0 testFun4
0x0000000084308600 testFun5
其中testFun1被调用到了,其他的都没有,所以直接strip .text section的话把testFun1也去除了。有没有什么方法或者Command Line Options可以去掉不用的函数
sysinner at 2007-10-18 > top of Msdn China Tech,Linux/Unix社区,程序开发...
# 6
no way。
yzx1983-捕风捉影 at 2007-10-18 > top of Msdn China Tech,Linux/Unix社区,程序开发...
# 7
没有办法从一个obj格式的文件里抽掉一部分函数体,留下有用的部分
只有从.a文件里取出有用的obj文件体参与link
yzx1983-捕风捉影 at 2007-10-18 > top of Msdn China Tech,Linux/Unix社区,程序开发...
# 8
谢谢。
那这样的话在最后link出来的binary文件里会有很多多余的函数体,代码空间就会大很多了
sysinner at 2007-10-18 > top of Msdn China Tech,Linux/Unix社区,程序开发...